diff options
Diffstat (limited to 'include/cru/win/graphics/direct')
-rw-r--r-- | include/cru/win/graphics/direct/Base.hpp | 12 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Brush.hpp | 11 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/ComResource.hpp | 4 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/ConvertUtil.hpp | 2 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Factory.hpp | 5 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Font.hpp | 7 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Geometry.hpp | 12 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Painter.hpp | 7 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/Resource.hpp | 11 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/TextLayout.hpp | 7 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/WindowPainter.hpp | 3 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/WindowRenderTarget.hpp | 5 |
12 files changed, 55 insertions, 31 deletions
diff --git a/include/cru/win/graphics/direct/Base.hpp b/include/cru/win/graphics/direct/Base.hpp new file mode 100644 index 00000000..b25a1c14 --- /dev/null +++ b/include/cru/win/graphics/direct/Base.hpp @@ -0,0 +1,12 @@ +#pragma once +#include "../../WinPreConfig.hpp" + +#ifdef CRU_PLATFORM_WINDOWS +#ifdef CRU_WIN_GRAPHICS_DIRECT_EXPORT_API +#define CRU_WIN_GRAPHICS_DIRECT_API __declspec(dllexport) +#else +#define CRU_WIN_GRAPHICS_DIRECT_API __declspec(dllimport) +#endif +#else +#define CRU_WIN_GRAPHICS_DIRECT_API +#endif diff --git a/include/cru/win/graphics/direct/Brush.hpp b/include/cru/win/graphics/direct/Brush.hpp index 9d8e5384..22b0a8af 100644 --- a/include/cru/win/graphics/direct/Brush.hpp +++ b/include/cru/win/graphics/direct/Brush.hpp @@ -5,14 +5,15 @@ #include "cru/platform/graphics/Brush.hpp" namespace cru::platform::graphics::win::direct { -struct ID2DBrush : virtual IBrush { +struct CRU_WIN_GRAPHICS_DIRECT_API ID2DBrush : virtual IBrush { virtual ID2D1Brush* GetD2DBrushInterface() const = 0; }; -class D2DSolidColorBrush : public DirectGraphicsResource, - public virtual ISolidColorBrush, - public virtual ID2DBrush, - public virtual IComResource<ID2D1SolidColorBrush> { +class CRU_WIN_GRAPHICS_DIRECT_API D2DSolidColorBrush + : public DirectGraphicsResource, + public virtual ISolidColorBrush, + public virtual ID2DBrush, + public virtual IComResource<ID2D1SolidColorBrush> { public: explicit D2DSolidColorBrush(DirectGraphicsFactory* factory); diff --git a/include/cru/win/graphics/direct/ComResource.hpp b/include/cru/win/graphics/direct/ComResource.hpp index 34ea39ed..f8738f6e 100644 --- a/include/cru/win/graphics/direct/ComResource.hpp +++ b/include/cru/win/graphics/direct/ComResource.hpp @@ -1,11 +1,11 @@ #pragma once -#include "../../WinPreConfig.hpp" +#include "Base.hpp" #include "cru/common/Base.hpp" namespace cru::platform::graphics::win::direct { template <typename TInterface> -struct IComResource : virtual Interface { +struct CRU_WIN_GRAPHICS_DIRECT_API IComResource : virtual Interface { virtual TInterface* GetComInterface() const = 0; }; } // namespace cru::platform::graphics::win::direct diff --git a/include/cru/win/graphics/direct/ConvertUtil.hpp b/include/cru/win/graphics/direct/ConvertUtil.hpp index 0d8da8a1..963b22f3 100644 --- a/include/cru/win/graphics/direct/ConvertUtil.hpp +++ b/include/cru/win/graphics/direct/ConvertUtil.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../../WinPreConfig.hpp" +#include "Base.hpp" #include "cru/platform/graphics/Base.hpp" diff --git a/include/cru/win/graphics/direct/Factory.hpp b/include/cru/win/graphics/direct/Factory.hpp index efcebba7..932d302b 100644 --- a/include/cru/win/graphics/direct/Factory.hpp +++ b/include/cru/win/graphics/direct/Factory.hpp @@ -4,8 +4,9 @@ #include "cru/platform/graphics/Factory.hpp" namespace cru::platform::graphics::win::direct { -class DirectGraphicsFactory : public DirectResource, - public virtual IGraphicsFactory { +class CRU_WIN_GRAPHICS_DIRECT_API DirectGraphicsFactory + : public DirectResource, + public virtual IGraphicsFactory { public: DirectGraphicsFactory(); diff --git a/include/cru/win/graphics/direct/Font.hpp b/include/cru/win/graphics/direct/Font.hpp index 3cd94f82..3bf423a0 100644 --- a/include/cru/win/graphics/direct/Font.hpp +++ b/include/cru/win/graphics/direct/Font.hpp @@ -7,9 +7,10 @@ #include <string_view> namespace cru::platform::graphics::win::direct { -class DWriteFont : public DirectGraphicsResource, - public virtual IFont, - public virtual IComResource<IDWriteTextFormat> { +class CRU_WIN_GRAPHICS_DIRECT_API DWriteFont + : public DirectGraphicsResource, + public virtual IFont, + public virtual IComResource<IDWriteTextFormat> { public: DWriteFont(DirectGraphicsFactory* factory, String font_family, float font_size); diff --git a/include/cru/win/graphics/direct/Geometry.hpp b/include/cru/win/graphics/direct/Geometry.hpp index b3b82f9c..3849045e 100644 --- a/include/cru/win/graphics/direct/Geometry.hpp +++ b/include/cru/win/graphics/direct/Geometry.hpp @@ -5,8 +5,9 @@ #include "cru/platform/graphics/Geometry.hpp" namespace cru::platform::graphics::win::direct { -class D2DGeometryBuilder : public DirectGraphicsResource, - public virtual IGeometryBuilder { +class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometryBuilder + : public DirectGraphicsResource, + public virtual IGeometryBuilder { public: explicit D2DGeometryBuilder(DirectGraphicsFactory* factory); @@ -33,9 +34,10 @@ class D2DGeometryBuilder : public DirectGraphicsResource, Microsoft::WRL::ComPtr<ID2D1GeometrySink> geometry_sink_; }; -class D2DGeometry : public DirectGraphicsResource, - public virtual IGeometry, - public IComResource<ID2D1Geometry> { +class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometry + : public DirectGraphicsResource, + public virtual IGeometry, + public IComResource<ID2D1Geometry> { public: D2DGeometry(DirectGraphicsFactory* factory, Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry); diff --git a/include/cru/win/graphics/direct/Painter.hpp b/include/cru/win/graphics/direct/Painter.hpp index d7b90d19..81d102f1 100644 --- a/include/cru/win/graphics/direct/Painter.hpp +++ b/include/cru/win/graphics/direct/Painter.hpp @@ -7,9 +7,10 @@ #include <vector> namespace cru::platform::graphics::win::direct { -class D2DPainter : public DirectResource, - public virtual IPainter, - public virtual IComResource<ID2D1RenderTarget> { +class CRU_WIN_GRAPHICS_DIRECT_API D2DPainter + : public DirectResource, + public virtual IPainter, + public virtual IComResource<ID2D1RenderTarget> { public: explicit D2DPainter(ID2D1RenderTarget* render_target); diff --git a/include/cru/win/graphics/direct/Resource.hpp b/include/cru/win/graphics/direct/Resource.hpp index c376628d..112af26f 100644 --- a/include/cru/win/graphics/direct/Resource.hpp +++ b/include/cru/win/graphics/direct/Resource.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../../WinPreConfig.hpp" +#include "Base.hpp" #include "cru/platform/graphics/Resource.hpp" @@ -8,7 +8,9 @@ namespace cru::platform::graphics::win::direct { class DirectGraphicsFactory; -class DirectResource : public Object, public virtual IPlatformResource { +class CRU_WIN_GRAPHICS_DIRECT_API DirectResource + : public Object, + public virtual IPlatformResource { public: static String kPlatformId; @@ -25,8 +27,9 @@ class DirectResource : public Object, public virtual IPlatformResource { String GetPlatformId() const final { return kPlatformId; } }; -class DirectGraphicsResource : public DirectResource, - public virtual IGraphicsResource { +class CRU_WIN_GRAPHICS_DIRECT_API DirectGraphicsResource + : public DirectResource, + public virtual IGraphicsResource { protected: // Param factory can't be null. explicit DirectGraphicsResource(DirectGraphicsFactory* factory); diff --git a/include/cru/win/graphics/direct/TextLayout.hpp b/include/cru/win/graphics/direct/TextLayout.hpp index b1843dd7..41698862 100644 --- a/include/cru/win/graphics/direct/TextLayout.hpp +++ b/include/cru/win/graphics/direct/TextLayout.hpp @@ -10,9 +10,10 @@ namespace cru::platform::graphics::win::direct { class DWriteFont; -class DWriteTextLayout : public DirectGraphicsResource, - public virtual ITextLayout, - public virtual IComResource<IDWriteTextLayout> { +class CRU_WIN_GRAPHICS_DIRECT_API DWriteTextLayout + : public DirectGraphicsResource, + public virtual ITextLayout, + public virtual IComResource<IDWriteTextLayout> { public: DWriteTextLayout(DirectGraphicsFactory* factory, std::shared_ptr<IFont> font, String text); diff --git a/include/cru/win/graphics/direct/WindowPainter.hpp b/include/cru/win/graphics/direct/WindowPainter.hpp index b5faf7b5..a39bc2b7 100644 --- a/include/cru/win/graphics/direct/WindowPainter.hpp +++ b/include/cru/win/graphics/direct/WindowPainter.hpp @@ -3,7 +3,8 @@ #include "WindowRenderTarget.hpp" namespace cru::platform::graphics::win::direct { -class D2DWindowPainter : public graphics::win::direct::D2DPainter { +class CRU_WIN_GRAPHICS_DIRECT_API D2DWindowPainter + : public graphics::win::direct::D2DPainter { public: explicit D2DWindowPainter(D2DWindowRenderTarget* window); diff --git a/include/cru/win/graphics/direct/WindowRenderTarget.hpp b/include/cru/win/graphics/direct/WindowRenderTarget.hpp index c197841d..4774a1d3 100644 --- a/include/cru/win/graphics/direct/WindowRenderTarget.hpp +++ b/include/cru/win/graphics/direct/WindowRenderTarget.hpp @@ -3,9 +3,10 @@ namespace cru::platform::graphics::win::direct { // Represents a window render target. -class D2DWindowRenderTarget : public Object { +class CRU_WIN_GRAPHICS_DIRECT_API D2DWindowRenderTarget : public Object { public: - D2DWindowRenderTarget(gsl::not_null<DirectGraphicsFactory*> factory, HWND hwnd); + D2DWindowRenderTarget(gsl::not_null<DirectGraphicsFactory*> factory, + HWND hwnd); CRU_DELETE_COPY(D2DWindowRenderTarget) CRU_DELETE_MOVE(D2DWindowRenderTarget) |