diff options
author | Neil <nyamatongwe@gmail.com> | 2025-03-20 16:46:11 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2025-03-20 16:46:11 +1100 |
commit | 2f542786fd95e7bbce6c689934cb4988aa3fa1df (patch) | |
tree | d2d41c023eae2a6d3b13cf1450e9ba59e55920c5 /win32/SurfaceD2D.h | |
parent | cb342d444c6c13671a5c1832d1723c073eca0a37 (diff) | |
download | scintilla-mirror-2f542786fd95e7bbce6c689934cb4988aa3fa1df.tar.gz |
Move SurfaceGDI, SurfaceD2D, ListBox, and associated code out of PlatWin.cxx to
new files SurfaceGDI.cxx, SurfaceD2D.cxx, and ListBox.cxx + associated headers.
Diffstat (limited to 'win32/SurfaceD2D.h')
-rw-r--r-- | win32/SurfaceD2D.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/win32/SurfaceD2D.h b/win32/SurfaceD2D.h new file mode 100644 index 000000000..13da459cc --- /dev/null +++ b/win32/SurfaceD2D.h @@ -0,0 +1,50 @@ +// Scintilla source code edit control +/** @file SurfaceD2D.h + ** Definitions for drawing to Direct2D on Windows. + **/ +// Copyright 1998-2011 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#ifndef SURFACED2D_H +#define SURFACED2D_H + +namespace Scintilla::Internal { + +extern bool LoadD2D() noexcept; +extern void ReleaseD2D() noexcept; +extern ID2D1Factory1 *pD2DFactory; +extern IDWriteFactory1 *pIDWriteFactory; + +using DCRenderTarget = ComPtr<ID2D1DCRenderTarget>; + +using D3D11Device = ComPtr<ID3D11Device1>; + +HRESULT CreateDCRenderTarget(const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, DCRenderTarget &dcRT) noexcept; +extern HRESULT CreateD3D(D3D11Device &device) noexcept; + +using WriteRenderingParams = ComPtr<IDWriteRenderingParams1>; + +struct RenderingParams { + WriteRenderingParams defaultRenderingParams; + WriteRenderingParams customRenderingParams; +}; + +struct ISetRenderingParams { + virtual void SetRenderingParams(std::shared_ptr<RenderingParams> renderingParams_) = 0; +}; + +using BrushSolid = ComPtr<ID2D1SolidColorBrush>; +using Geometry = ComPtr<ID2D1PathGeometry>; +using GeometrySink = ComPtr<ID2D1GeometrySink>; +using StrokeStyle = ComPtr<ID2D1StrokeStyle>; +using TextLayout = ComPtr<IDWriteTextLayout>; + +BrushSolid BrushSolidCreate(ID2D1RenderTarget *pTarget, COLORREF colour) noexcept; +Geometry GeometryCreate() noexcept; +GeometrySink GeometrySinkCreate(ID2D1PathGeometry *geometry) noexcept; +StrokeStyle StrokeStyleCreate(const D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties) noexcept; +TextLayout LayoutCreate(std::wstring_view wsv, IDWriteTextFormat *pTextFormat, FLOAT maxWidth=10000.0F, FLOAT maxHeight=1000.0F) noexcept; + +} + +#endif |