掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Direct2D PathGeometryのCreate方法を教えてください (ID:49360)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
不十分な質問内容で失礼しました。 環境は Windows10 + Delphi10.2pro です。 また,エラーメッセージは, 「モジュール'xxx.exe'のアドレス yyyyyyyy でアドレス 00000000 に対する読み取り違反がおきました。」 というものです。Breakpointを設置して調べてみたところ, hr := Ifact.CreatePathGeometry(crv); のことろで,エラーを生じているようです。 プログラムのコードは,この後,既存の bmp:Tbitmap に対して,direct2Dcanvas,DrawGeomwtry を用いて描画するつもりでした。 ==================================================== procedure CustomPolyline(points: array of TD2Dpoint2F); var iFact : Id2D1Factory; crv : ID2D1pathgeometry; isink : ID2D1GeometrySink; hr : Hresult; Lcanvas : Tdirect2dCanvas; begin if length(points) = 0 then exit; hr := Ifact.CreatePathGeometry(crv); if not succeeded(hr) then exit; hr := crv.open(isink); if not succeeded(hr) then exit; isink.SetFillMode(D2D1_FILL_MODE_WINDING); isink.BeginFigure(points[0],D2D1_FIGURE_BEGIN_FILLED); isink.AddLines(@points[1],length(points)-1); isink.EndFigure(D2D1_FIGURE_END_Closed); isink.Close; LCanvas := TDirect2DCanvas.Create(bmp.Canvas, bmp.canvas.clipRect); with LCanvas do begin BeginDraw; drawgeometry(crv); ENdDraw; end; LCanvas.Free; end; ==================================================== Direct2dCanvs.Polyline では整数値の座標しか扱えないので,小数の座標を扱うために,geometry を作って DrawGeometry で描画を 試みた次第です。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.