aboutsummaryrefslogtreecommitdiff
path: root/src/platform/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/graphics')
-rw-r--r--src/platform/graphics/direct2d/Base.cpp (renamed from src/platform/graphics/direct2d/Resource.cpp)7
-rw-r--r--src/platform/graphics/direct2d/Brush.cpp3
-rw-r--r--src/platform/graphics/direct2d/CMakeLists.txt4
-rw-r--r--src/platform/graphics/direct2d/Factory.cpp7
-rw-r--r--src/platform/graphics/direct2d/Font.cpp2
-rw-r--r--src/platform/graphics/direct2d/Geometry.cpp4
-rw-r--r--src/platform/graphics/direct2d/Image.cpp8
-rw-r--r--src/platform/graphics/direct2d/ImageFactory.cpp2
-rw-r--r--src/platform/graphics/direct2d/Painter.cpp13
-rw-r--r--src/platform/graphics/direct2d/TextLayout.cpp4
-rw-r--r--src/platform/graphics/direct2d/WindowPainter.cpp8
-rw-r--r--src/platform/graphics/direct2d/WindowRenderTarget.cpp2
12 files changed, 21 insertions, 43 deletions
diff --git a/src/platform/graphics/direct2d/Resource.cpp b/src/platform/graphics/direct2d/Base.cpp
index 2f1b7654..0dd4a7e1 100644
--- a/src/platform/graphics/direct2d/Resource.cpp
+++ b/src/platform/graphics/direct2d/Base.cpp
@@ -1,15 +1,18 @@
-#include "cru/platform/graphics/direct2d/Resource.h"
+#include "cru/platform/graphics/direct2d/Base.h"
#include "cru/platform/graphics/direct2d/Factory.h"
namespace cru::platform::graphics::direct2d {
-std::string DirectResource::kPlatformId = "Windows Direct";
DirectGraphicsResource::DirectGraphicsResource(DirectGraphicsFactory* factory)
: factory_(factory) {
Expects(factory);
}
+std::string DirectGraphicsResource::GetPlatformId() const {
+ return kPlatformId;
+}
+
IGraphicsFactory* DirectGraphicsResource::GetGraphicsFactory() {
return factory_;
}
diff --git a/src/platform/graphics/direct2d/Brush.cpp b/src/platform/graphics/direct2d/Brush.cpp
index 27b76202..7ab35273 100644
--- a/src/platform/graphics/direct2d/Brush.cpp
+++ b/src/platform/graphics/direct2d/Brush.cpp
@@ -1,7 +1,4 @@
#include "cru/platform/graphics/direct2d/Brush.h"
-
-#include "cru/platform/graphics/direct2d/ConvertUtil.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
namespace cru::platform::graphics::direct2d {
diff --git a/src/platform/graphics/direct2d/CMakeLists.txt b/src/platform/graphics/direct2d/CMakeLists.txt
index 4776e773..322c91e9 100644
--- a/src/platform/graphics/direct2d/CMakeLists.txt
+++ b/src/platform/graphics/direct2d/CMakeLists.txt
@@ -1,4 +1,5 @@
add_library(CruPlatformGraphicsDirect2d
+ Base.cpp
Brush.cpp
Font.cpp
Geometry.cpp
@@ -6,11 +7,10 @@ add_library(CruPlatformGraphicsDirect2d
ImageFactory.cpp
Factory.cpp
Painter.cpp
- Resource.cpp
TextLayout.cpp
WindowPainter.cpp
WindowRenderTarget.cpp
)
target_link_libraries(CruPlatformGraphicsDirect2d PUBLIC D3D11 D2d1 DWrite)
-target_link_libraries(CruPlatformGraphicsDirect2d PUBLIC CruWinBase CruPlatformGraphics)
+target_link_libraries(CruPlatformGraphicsDirect2d PUBLIC CruPlatformGraphics)
target_compile_definitions(CruPlatformGraphicsDirect2d PRIVATE CRU_WIN_GRAPHICS_DIRECT_EXPORT_API)
diff --git a/src/platform/graphics/direct2d/Factory.cpp b/src/platform/graphics/direct2d/Factory.cpp
index af3f174d..414ef2ab 100644
--- a/src/platform/graphics/direct2d/Factory.cpp
+++ b/src/platform/graphics/direct2d/Factory.cpp
@@ -1,19 +1,16 @@
#include "cru/platform/graphics/direct2d/Factory.h"
-
-#include "cru/base/log/Logger.h"
+#include "cru/platform/graphics/direct2d/Base.h"
#include "cru/platform/graphics/direct2d/Brush.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Font.h"
#include "cru/platform/graphics/direct2d/Geometry.h"
#include "cru/platform/graphics/direct2d/ImageFactory.h"
#include "cru/platform/graphics/direct2d/TextLayout.h"
-#include <cstdlib>
#include <utility>
namespace cru::platform::graphics::direct2d {
-DirectGraphicsFactory::DirectGraphicsFactory() {
+DirectGraphicsFactory::DirectGraphicsFactory() : DirectGraphicsResource(this) {
// TODO: Detect repeated creation. Because I don't think we can create two d2d
// and dwrite factory so we need to prevent the "probably dangerous" behavior.
diff --git a/src/platform/graphics/direct2d/Font.cpp b/src/platform/graphics/direct2d/Font.cpp
index f8dfbf38..50f7c266 100644
--- a/src/platform/graphics/direct2d/Font.cpp
+++ b/src/platform/graphics/direct2d/Font.cpp
@@ -1,7 +1,5 @@
#include "cru/platform/graphics/direct2d/Font.h"
-
#include "cru/base/StringUtil.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
#include <array>
diff --git a/src/platform/graphics/direct2d/Geometry.cpp b/src/platform/graphics/direct2d/Geometry.cpp
index 45971b76..89b2cfd9 100644
--- a/src/platform/graphics/direct2d/Geometry.cpp
+++ b/src/platform/graphics/direct2d/Geometry.cpp
@@ -1,8 +1,4 @@
#include "cru/platform/graphics/direct2d/Geometry.h"
-
-#include "cru/base/platform/win/Exception.h"
-#include "cru/platform/graphics/direct2d/ConvertUtil.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
#include <d2d1.h>
diff --git a/src/platform/graphics/direct2d/Image.cpp b/src/platform/graphics/direct2d/Image.cpp
index 2f60b373..1c4619b3 100644
--- a/src/platform/graphics/direct2d/Image.cpp
+++ b/src/platform/graphics/direct2d/Image.cpp
@@ -1,8 +1,4 @@
#include "cru/platform/graphics/direct2d/Image.h"
-#include <d2d1_1.h>
-#include "cru/base/platform/win/Exception.h"
-#include "cru/platform/graphics/direct2d/ConvertUtil.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
#include "cru/platform/graphics/direct2d/Painter.h"
@@ -39,7 +35,7 @@ std::unique_ptr<IImage> Direct2DImage::CreateWithRect(const Rect& rect) {
std::unique_ptr<IPainter> Direct2DImage::CreatePainter() {
auto device_context = GetDirectFactory()->CreateD2D1DeviceContext();
device_context->SetTarget(d2d_bitmap_.Get());
- return std::make_unique<D2DDeviceContextPainter>(device_context.Detach(),
- true);
+ return std::make_unique<D2DDeviceContextPainter>(
+ GetDirectFactory(), device_context.Detach(), true);
}
} // namespace cru::platform::graphics::direct2d
diff --git a/src/platform/graphics/direct2d/ImageFactory.cpp b/src/platform/graphics/direct2d/ImageFactory.cpp
index df162561..5e667f48 100644
--- a/src/platform/graphics/direct2d/ImageFactory.cpp
+++ b/src/platform/graphics/direct2d/ImageFactory.cpp
@@ -1,7 +1,5 @@
#include "cru/platform/graphics/direct2d/ImageFactory.h"
-#include "cru/base/platform/win/Exception.h"
#include "cru/base/platform/win/StreamConvert.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
#include "cru/platform/graphics/direct2d/Image.h"
diff --git a/src/platform/graphics/direct2d/Painter.cpp b/src/platform/graphics/direct2d/Painter.cpp
index c62947e0..1744a638 100644
--- a/src/platform/graphics/direct2d/Painter.cpp
+++ b/src/platform/graphics/direct2d/Painter.cpp
@@ -1,18 +1,16 @@
#include "cru/platform/graphics/direct2d/Painter.h"
-
#include "cru/base/log/Logger.h"
+#include "cru/platform/graphics/direct2d/Base.h"
#include "cru/platform/graphics/direct2d/Brush.h"
-#include "cru/platform/graphics/direct2d/ConvertUtil.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Geometry.h"
#include "cru/platform/graphics/direct2d/Image.h"
#include "cru/platform/graphics/direct2d/TextLayout.h"
-#include <type_traits>
-
namespace cru::platform::graphics::direct2d {
D2DDeviceContextPainter::D2DDeviceContextPainter(
- ID2D1DeviceContext1* device_context, bool release) {
+ DirectGraphicsFactory* graphics_factory,
+ ID2D1DeviceContext1* device_context, bool release)
+ : DirectGraphicsResource(graphics_factory) {
Expects(device_context);
device_context_ = device_context;
release_ = release;
@@ -21,7 +19,8 @@ D2DDeviceContextPainter::D2DDeviceContextPainter(
D2DDeviceContextPainter::~D2DDeviceContextPainter() {
if (is_drawing_) {
- CRU_LOG_TAG_INFO("You may forget to call EndDraw before destroying painter.");
+ CRU_LOG_TAG_INFO(
+ "You may forget to call EndDraw before destroying painter.");
}
if (release_) {
diff --git a/src/platform/graphics/direct2d/TextLayout.cpp b/src/platform/graphics/direct2d/TextLayout.cpp
index 1abaa383..ce584608 100644
--- a/src/platform/graphics/direct2d/TextLayout.cpp
+++ b/src/platform/graphics/direct2d/TextLayout.cpp
@@ -1,9 +1,5 @@
#include "cru/platform/graphics/direct2d/TextLayout.h"
-#include <dwrite.h>
-
#include "cru/base/StringUtil.h"
-#include "cru/base/log/Logger.h"
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
#include "cru/platform/graphics/direct2d/Font.h"
diff --git a/src/platform/graphics/direct2d/WindowPainter.cpp b/src/platform/graphics/direct2d/WindowPainter.cpp
index c950a2b6..b27fa735 100644
--- a/src/platform/graphics/direct2d/WindowPainter.cpp
+++ b/src/platform/graphics/direct2d/WindowPainter.cpp
@@ -1,12 +1,12 @@
#include "cru/platform/graphics/direct2d/WindowPainter.h"
-
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
#include "cru/platform/graphics/direct2d/WindowRenderTarget.h"
namespace cru::platform::graphics::direct2d {
-D2DWindowPainter::D2DWindowPainter(D2DWindowRenderTarget* render_target)
- : D2DDeviceContextPainter(render_target->GetD2D1DeviceContext()),
+D2DWindowPainter::D2DWindowPainter(DirectGraphicsFactory* graphics_factory,
+ D2DWindowRenderTarget* render_target)
+ : D2DDeviceContextPainter(graphics_factory,
+ render_target->GetD2D1DeviceContext(), false),
render_target_(render_target) {}
D2DWindowPainter::~D2DWindowPainter() {}
diff --git a/src/platform/graphics/direct2d/WindowRenderTarget.cpp b/src/platform/graphics/direct2d/WindowRenderTarget.cpp
index a8d988f4..51b6ab22 100644
--- a/src/platform/graphics/direct2d/WindowRenderTarget.cpp
+++ b/src/platform/graphics/direct2d/WindowRenderTarget.cpp
@@ -1,6 +1,4 @@
#include "cru/platform/graphics/direct2d/WindowRenderTarget.h"
-
-#include "cru/platform/graphics/direct2d/Exception.h"
#include "cru/platform/graphics/direct2d/Factory.h"
namespace cru::platform::graphics::direct2d {