OSDN Git Service

とりあえず実行できるようになった。
[winaudioj/stedx.git] / win32_graphics.cpp
index 8c87e8b..d924155 100644 (file)
@@ -66,16 +66,15 @@ CSTedScreenWin32::TextXBox(int in_x0, int in_y0, int in_x1, int in_y1, int in_pa
 
     if (in_page != 0) 
     {
-      text_bitmap_target_->DrawRectangle(r1,color_brush);
+      text_bitmap_target_->DrawRectangle(r1,color_brush.Get());
            //br = ::CreateSolidBrush(c);
            //mbr = MASK_ON;
     } else {
-      text_bitmap_target_->DrawRectangle(r1,brush_text_clear_);
+      text_bitmap_target_->DrawRectangle(r1,brush_text_clear_.Get());
            //br = fBrushTextClear;
            //mbr = MASK_OFF;
     }
     text_bitmap_target_->SetAntialiasMode(backup);
-    THROW_IF_ERR(b.end_draw());
   }
 //  if (!br) return;
 
@@ -111,7 +110,7 @@ CSTedScreenWin32::TextXXLine(int in_page, int in_x, int in_y, int in_w, int in_l
 
   D2D1_ANTIALIAS_MODE backup(text_bitmap_target_->GetAntialiasMode());
   text_bitmap_target_->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
-  text_bitmap_target_->DrawLine(D2D1::Point2F(x0,y),D2D1::Point2F(x1,y),brush);
+  text_bitmap_target_->DrawLine(D2D1::Point2F(x0,y),D2D1::Point2F(x1,y),brush.Get());
   text_bitmap_target_->SetAntialiasMode(backup);
 
   //if (in_linestyle != 0 /*&& in_page!=0*/) 
@@ -142,7 +141,7 @@ CSTedScreenWin32::TextXXLine(int in_page, int in_x, int in_y, int in_w, int in_l
   //::SelectObject(fTextMaskDC, morig);
   //if (p) ::DeleteObject(p);
   //if (mp) ::DeleteObject(mp);
-  THROW_IF_ERR(begin.end_draw());
+  //THROW_IF_ERR(begin.end_draw());
 
   InvalidateRect(x0,y,x1-x0,1);
 }
@@ -159,19 +158,21 @@ CSTedScreenWin32::TextXYLine(int in_page, int in_x, int in_y, int in_h, int in_l
   if (!toWindowPos(in_x, in_y+in_h, &x, &y1)) return;
 
   ID2D1SolidColorBrushPtr brush;
-  sf::begin_draw_bitmap begin(text_bitmap_target_);
+  {
+    sf::begin_draw_bitmap begin(text_bitmap_target_);
 
-  if (in_linestyle != 0 /*&& in_page!=0*/) {
-    text_bitmap_target_->CreateSolidColorBrush(D2D1::ColorF(PageToColor(in_page)),&brush);
-  } else {
-    text_bitmap_target_->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White),&brush);
+    if (in_linestyle != 0 /*&& in_page!=0*/) {
+      text_bitmap_target_->CreateSolidColorBrush(D2D1::ColorF(PageToColor(in_page)),&brush);
+    } else {
+      text_bitmap_target_->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White),&brush);
+    }
+    D2D1_ANTIALIAS_MODE backup(text_bitmap_target_->GetAntialiasMode());
+    text_bitmap_target_->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
+    text_bitmap_target_->DrawLine(D2D1::Point2F(x,y0),D2D1::Point2F(x,y1),brush.Get());
+    text_bitmap_target_->SetAntialiasMode(backup);
   }
-  D2D1_ANTIALIAS_MODE backup(text_bitmap_target_->GetAntialiasMode());
-  text_bitmap_target_->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
-  text_bitmap_target_->DrawLine(D2D1::Point2F(x,y0),D2D1::Point2F(x,y1),brush);
-  text_bitmap_target_->SetAntialiasMode(backup);
 
-  THROW_IF_ERR(begin.end_draw());
+  //THROW_IF_ERR(begin.end_draw());
 
   //if (in_linestyle!=0 /*&& in_page!=0*/) {
         // p = ::CreatePen(PS_SOLID, 1, PageToColor(in_page));
@@ -230,7 +231,6 @@ void CSTedScreenWin32::TextReverse(int in_x, int in_y, int in_width, int in_page
       ::SetTextColor(dc,c);
       ::SetBkColor(dc,b);
     }
-    THROW_IF_ERR(begin.end_draw());
   }
   InvalidateRect(x,y,w,h);
 }
@@ -260,7 +260,6 @@ CSTedScreenWin32::TextReverseArea(int in_r_ad, int in_r_ln, int in_editscr)
       ::SetTextColor(dc, c);
       ::SetBkColor(dc, b);
     }
-    THROW_IF_ERR(begin.end_draw());
   }
 
   /*   
@@ -299,7 +298,7 @@ CSTedScreenWin32::TextFill(int in_page, int in_x, int in_y, int in_w, int in_h,
     text_bitmap_target_->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
     if (in_page != 0) 
     {
-      text_bitmap_target_->FillRectangle(r1,color_brush);
+      text_bitmap_target_->FillRectangle(r1,color_brush.Get());
            //br = ::CreateSolidBrush(c);
            //mbr = MASK_ON;
     } else {
@@ -311,7 +310,6 @@ CSTedScreenWin32::TextFill(int in_page, int in_x, int in_y, int in_w, int in_h,
            //mbr = MASK_OFF;
     }
     text_bitmap_target_->SetAntialiasMode(backup);
-    THROW_IF_ERR(b.end_draw());
   }
  // if (in_linestyle!=0 && in_page!=0) {
        //  c = PageToColor(in_page);
@@ -371,7 +369,7 @@ CSTedScreenWin32::TextRasterCopy(int in_dst, int in_src, int in_line, int in_mod
         D2D1_ANTIALIAS_MODE backup(text_bitmap_target_->GetAntialiasMode());
         text_bitmap_target_->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
 
-        text_bitmap_target_->FillRectangle(D2D1::RectF(sx,sy,sx+lx,dy),brush_text_clear_);
+        text_bitmap_target_->FillRectangle(D2D1::RectF(sx,sy,sx+lx,dy),brush_text_clear_.Get());
 //        ::FillRect(dc, &r, fBrushTextClear);
   //      ::FillRect(fTextMaskDC, &r, MASK_OFF);
         text_bitmap_target_->SetAntialiasMode(backup);
@@ -386,7 +384,6 @@ CSTedScreenWin32::TextRasterCopy(int in_dst, int in_src, int in_line, int in_mod
       }
     }
   }
-  THROW_IF_ERR(begin.end_draw());
 }
 
 void
@@ -403,12 +400,11 @@ CSTedScreenWin32::TextScroll(int in_x0, int in_y0, int in_xs, int in_ys, int in_
   if (!TextToWindowPos(in_xs, in_ys, &w, &d)) return;
   if (!toWindowPos(in_xs, in_ys, &d, &h)) return;
 
-   sf::begin_draw_bitmap begin(text_bitmap_target_);
     {
+      sf::begin_draw_bitmap begin(text_bitmap_target_);
       sf::d2_dc_type dc(new sf::d2_dc(text_dc_target_,D2D1_DC_INITIALIZE_MODE_COPY));
       ::BitBlt(dc, x1,y1,w,h, dc, x0, y0, SRCCOPY);
     }
-    THROW_IF_ERR(begin.end_draw());
  
   // ::BitBlt(fTextDC, x1, y1, w, h, fTextDC, x0, y0, SRCCOPY);
 //  ::BitBlt(fTextMaskDC, x1, y1, w, h, fTextMaskDC, x0, y0, SRCCOPY);
@@ -443,7 +439,7 @@ CSTedScreenWin32::GraphicsBox(int in_x0, int in_y0, int in_x1, int in_y1, unsign
   if (sx==ex || sy==ey) {
 
          // pen = ::CreatePen(PS_SOLID, 1, c);
-    graphics_bitmap_target_[d]->DrawLine(D2D1::Point2F(sx,sy),D2D1::Point2F(ex,ey),brush);
+    graphics_bitmap_target_[d]->DrawLine(D2D1::Point2F(sx,sy),D2D1::Point2F(ex,ey),brush.Get());
 
          //if (pen) {
 
@@ -455,7 +451,7 @@ CSTedScreenWin32::GraphicsBox(int in_x0, int in_y0, int in_x1, int in_y1, unsign
                  //::DeleteObject(pen);
          /*}*/
   } else {
-    graphics_bitmap_target_[d]->DrawRectangle(D2D1::RectF(sx,sy,ex,ey),brush);
+    graphics_bitmap_target_[d]->DrawRectangle(D2D1::RectF(sx,sy,ex,ey),brush.Get());
         //br = ::CreateSolidBrush(c);
         // if (br) {
        ////::FrameRect(fGraphicsWindowDC[d], &r, br);
@@ -464,7 +460,6 @@ CSTedScreenWin32::GraphicsBox(int in_x0, int in_y0, int in_x1, int in_y1, unsign
   }
   graphics_bitmap_target_[d]->SetAntialiasMode(backup);
   // エラーチェック
-  THROW_IF_ERR(begin.end_draw());
   ::SetRect(&r, sx, sy, ex, ey);
   InvalidateRect(&r);
 }
@@ -500,10 +495,9 @@ CSTedScreenWin32::GraphicsLine(int in_x0, int in_y0, int in_x1, int in_y1, int i
     sf::begin_draw_bitmap begin(graphics_bitmap_target_[d]);
     D2D1_ANTIALIAS_MODE backup(graphics_bitmap_target_[d]->GetAntialiasMode());
     graphics_bitmap_target_[d]->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
-    graphics_bitmap_target_[d]->DrawLine(D2D1::Point2F(sx,sy),D2D1::Point2F(ex,ey),brush);
+    graphics_bitmap_target_[d]->DrawLine(D2D1::Point2F(sx,sy),D2D1::Point2F(ex,ey),brush.Get());
     graphics_bitmap_target_[d]->SetAntialiasMode(backup);
     // エラーチェック
-    THROW_IF_ERR(begin.end_draw());
   }
   //pen = ::CreatePen(PS_SOLID, 1, c);
   //if (pen) {
@@ -539,13 +533,13 @@ CSTedScreenWin32::GraphicsFill(int in_x0, int in_y0, int in_x1, int in_y1, int i
 
   graphics_bitmap_target_[d]->CreateSolidColorBrush(D2D1::ColorF(c),&brush);
 
-  sf::begin_draw_bitmap begin(graphics_bitmap_target_[d]);
-  D2D1_ANTIALIAS_MODE backup(graphics_bitmap_target_[d]->GetAntialiasMode());
-  graphics_bitmap_target_[d]->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
-  graphics_bitmap_target_[d]->FillRectangle(D2D1::RectF(sx,sy,ex,ey),brush);
-  graphics_bitmap_target_[d]->SetAntialiasMode(backup);
-  THROW_IF_ERR(begin.end_draw());
-
+  {
+    sf::begin_draw_bitmap begin(graphics_bitmap_target_[d]);
+    D2D1_ANTIALIAS_MODE backup(graphics_bitmap_target_[d]->GetAntialiasMode());
+    graphics_bitmap_target_[d]->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
+    graphics_bitmap_target_[d]->FillRectangle(D2D1::RectF(sx,sy,ex,ey),brush.Get());
+    graphics_bitmap_target_[d]->SetAntialiasMode(backup);
+  }
  // br = ::CreateSolidBrush(c);
  // if (br) {
  //   ::FillRect(fGraphicsWindowDC[d], &r, br);
@@ -632,7 +626,6 @@ CSTedScreenWin32::ClsAll(void)
   ::SetRect(&r, 0, 0, fWindowWidth, fWindowHeight);
   sf::begin_draw_bitmap begin(text_bitmap_target_);
   text_bitmap_target_->Clear(D2D1::ColorF(0,0));
-  THROW_IF_ERR(begin.end_draw());
 
 //  ::FillRect(fTextDC, &r, fBrushTextClear);
 //  ::FillRect(fTextMaskDC, &r, MASK_OFF);
@@ -646,7 +639,6 @@ CSTedScreenWin32::GraphicsClear(void)
   ::SetRect(&r, 0, 0, fWindowWidth, fWindowHeight);
   sf::begin_draw_bitmap begin(graphics_bitmap_target_[fCurrentGraphics]);
   graphics_bitmap_target_[fCurrentGraphics]->Clear();
-  THROW_IF_ERR(begin.end_draw());
   //::FillRect(fGraphicsWindowDC[fCurrentGraphics], &r, fBrushClear);
   InvalidateRect(&r);
 }