From 5d7fc0554566ea880915e08218fe9a9bcf1fbeda Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Tue, 13 Nov 2012 19:53:47 +0000 Subject: [PATCH] d2d: Make it actually work. --- gui/imageviewer.cpp | 2 +- specs/d2d1.py | 2 +- specs/dwrite.py | 8 ++++---- wrappers/CMakeLists.txt | 18 ++++++++++-------- wrappers/d2d1.def | 10 +++++----- wrappers/dwritetrace.cpp | 6 ++++++ 6 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 wrappers/dwritetrace.cpp diff --git a/gui/imageviewer.cpp b/gui/imageviewer.cpp index 0e0657a..1a1fe5a 100644 --- a/gui/imageviewer.cpp +++ b/gui/imageviewer.cpp @@ -130,7 +130,7 @@ QSize ImageViewer::sizeHint() const m_image.height() + hScrollHeight); QRect screenRect = QApplication::desktop()->availableGeometry(); - const float maxPercentOfDesktopSpace = 0.8; + const float maxPercentOfDesktopSpace = 0.8f; QSize maxAvailableSize(maxPercentOfDesktopSpace * screenRect.width(), maxPercentOfDesktopSpace * screenRect.height()); diff --git a/specs/d2d1.py b/specs/d2d1.py index a26b4a6..e532e46 100644 --- a/specs/d2d1.py +++ b/specs/d2d1.py @@ -631,5 +631,5 @@ d2d1.addFunctions([ StdFunction(Void, "D2D1MakeRotateMatrix", [(FLOAT, "angle"), (D2D1_POINT_2F, "center"), Out(Pointer(D2D1_MATRIX_3X2_F), "matrix")]), StdFunction(Void, "D2D1MakeSkewMatrix", [(FLOAT, "angleX"), (FLOAT, "angleY"), (D2D1_POINT_2F, "center"), Out(Pointer(D2D1_MATRIX_3X2_F), "matrix")]), StdFunction(BOOL, "D2D1IsMatrixInvertible", [(Pointer(Const(D2D1_MATRIX_3X2_F)), "matrix")]), - StdFunction(BOOL, "D2D1InvertMatrix", [Out(Pointer(D2D1_MATRIX_3X2_F), "matrix")]), + StdFunction(BOOL, "D2D1InvertMatrix", [InOut(Pointer(D2D1_MATRIX_3X2_F), "matrix")]), ]) diff --git a/specs/dwrite.py b/specs/dwrite.py index 916cae3..1a8aae0 100644 --- a/specs/dwrite.py +++ b/specs/dwrite.py @@ -454,7 +454,7 @@ IDWriteTextFormat.methods += [ StdMethod(HRESULT, "SetReadingDirection", [(DWRITE_READING_DIRECTION, "readingDirection")]), StdMethod(HRESULT, "SetFlowDirection", [(DWRITE_FLOW_DIRECTION, "flowDirection")]), StdMethod(HRESULT, "SetIncrementalTabStop", [(FLOAT, "incrementalTabStop")]), - StdMethod(HRESULT, "SetTrimming", [(Pointer(Const(DWRITE_TRIMMING)), "trimmingOptions"), (ObjPointer(IDWriteInlineObject), "trimmingSign")]), + StdMethod(HRESULT, "SetTrimming", [(Pointer(Const(DWRITE_TRIMMING)), "trimmingOptions"), (OpaquePointer(IDWriteInlineObject), "trimmingSign")]), StdMethod(HRESULT, "SetLineSpacing", [(DWRITE_LINE_SPACING_METHOD, "lineSpacingMethod"), (FLOAT, "lineSpacing"), (FLOAT, "baseline")]), StdMethod(DWRITE_TEXT_ALIGNMENT, "GetTextAlignment", []), StdMethod(DWRITE_PARAGRAPH_ALIGNMENT, "GetParagraphAlignment", []), @@ -462,7 +462,7 @@ IDWriteTextFormat.methods += [ StdMethod(DWRITE_READING_DIRECTION, "GetReadingDirection", []), StdMethod(DWRITE_FLOW_DIRECTION, "GetFlowDirection", []), StdMethod(FLOAT, "GetIncrementalTabStop", []), - StdMethod(HRESULT, "GetTrimming", [Out(Pointer(DWRITE_TRIMMING), "trimmingOptions"), Out(Pointer(ObjPointer(IDWriteInlineObject)), "trimmingSign")]), + StdMethod(HRESULT, "GetTrimming", [Out(Pointer(DWRITE_TRIMMING), "trimmingOptions"), Out(Pointer(OpaquePointer(IDWriteInlineObject)), "trimmingSign")]), StdMethod(HRESULT, "GetLineSpacing", [Out(Pointer(DWRITE_LINE_SPACING_METHOD), "lineSpacingMethod"), Out(Pointer(FLOAT), "lineSpacing"), Out(Pointer(FLOAT), "baseline")]), StdMethod(HRESULT, "GetFontCollection", [Out(Pointer(ObjPointer(IDWriteFontCollection)), "fontCollection")]), StdMethod(UINT32, "GetFontFamilyNameLength", []), @@ -654,7 +654,7 @@ DWRITE_HIT_TEST_METRICS = Struct("DWRITE_HIT_TEST_METRICS", [ ]) IDWriteInlineObject.methods += [ - StdMethod(HRESULT, "Draw", [(OpaquePointer(Void), "clientDrawingContext"), (ObjPointer(IDWriteTextRenderer), "renderer"), (FLOAT, "originX"), (FLOAT, "originY"), (BOOL, "isSideways"), (BOOL, "isRightToLeft"), (ObjPointer(IUnknown), "clientDrawingEffect")]), + StdMethod(HRESULT, "Draw", [(OpaquePointer(Void), "clientDrawingContext"), (OpaquePointer(IDWriteTextRenderer), "renderer"), (FLOAT, "originX"), (FLOAT, "originY"), (BOOL, "isSideways"), (BOOL, "isRightToLeft"), (ObjPointer(IUnknown), "clientDrawingEffect")]), StdMethod(HRESULT, "GetMetrics", [Out(Pointer(DWRITE_INLINE_OBJECT_METRICS), "metrics")]), StdMethod(HRESULT, "GetOverhangMetrics", [Out(Pointer(DWRITE_OVERHANG_METRICS), "overhangs")]), StdMethod(HRESULT, "GetBreakConditions", [Out(Pointer(DWRITE_BREAK_CONDITION), "breakConditionBefore"), Out(Pointer(DWRITE_BREAK_CONDITION), "breakConditionAfter")]), @@ -704,7 +704,7 @@ IDWriteTextLayout.methods += [ StdMethod(HRESULT, "GetTypography", [(UINT32, "currentPosition"), Out(Pointer(ObjPointer(IDWriteTypography)), "typography"), Out(Pointer(DWRITE_TEXT_RANGE), "textRange")]), StdMethod(HRESULT, "GetLocaleNameLength", [(UINT32, "currentPosition"), Out(Pointer(UINT32), "nameLength"), Out(Pointer(DWRITE_TEXT_RANGE), "textRange")]), StdMethod(HRESULT, "GetLocaleName", [(UINT32, "currentPosition"), Out(Pointer(WCHAR), "localeName"), (UINT32, "nameSize"), Out(Pointer(DWRITE_TEXT_RANGE), "textRange")]), - StdMethod(HRESULT, "Draw", [(OpaquePointer(Void), "clientDrawingContext"), (ObjPointer(IDWriteTextRenderer), "renderer"), (FLOAT, "originX"), (FLOAT, "originY")]), + StdMethod(HRESULT, "Draw", [(OpaquePointer(Void), "clientDrawingContext"), (OpaquePointer(IDWriteTextRenderer), "renderer"), (FLOAT, "originX"), (FLOAT, "originY")]), StdMethod(HRESULT, "GetLineMetrics", [Out(Pointer(DWRITE_LINE_METRICS), "lineMetrics"), (UINT32, "maxLineCount"), Out(Pointer(UINT32), "actualLineCount")]), StdMethod(HRESULT, "GetMetrics", [Out(Pointer(DWRITE_TEXT_METRICS), "textMetrics")]), StdMethod(HRESULT, "GetOverhangMetrics", [Out(Pointer(DWRITE_OVERHANG_METRICS), "overhangs")]), diff --git a/wrappers/CMakeLists.txt b/wrappers/CMakeLists.txt index 69d6586..20296ce 100644 --- a/wrappers/CMakeLists.txt +++ b/wrappers/CMakeLists.txt @@ -18,6 +18,8 @@ set_target_properties (common_trace PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS}" ) +set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + if (WIN32) if (MINGW) # Silence warnings about @nn suffix mismatch @@ -268,31 +270,31 @@ if (WIN32) ${CMAKE_SOURCE_DIR}/specs/winapi.py ${CMAKE_SOURCE_DIR}/specs/stdapi.py ) - add_library (d2d1 SHARED d2d1.def d2d1trace.cpp) - target_link_libraries (d2d1 + add_library (d2d1trace SHARED d2d1.def d2d1trace.cpp) + target_link_libraries (d2d1trace common_trace common ${ZLIB_LIBRARIES} ${SNAPPY_LIBRARIES} ) - set_target_properties (d2d1 + set_target_properties (d2d1trace PROPERTIES PREFIX "" OUTPUT_NAME d2d1 ) # http://www.cmake.org/pipermail/cmake/2009-March/028221.html - install (TARGETS d2d1 + install (TARGETS d2d1trace RUNTIME DESTINATION ${WRAPPER_INSTALL_DIR} COMPONENT RUNTIME LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR} COMPONENT RUNTIME ) # dwrite.dll is just an empty stub for d2d1.dll - add_library (dwrite MODULE dwrite.def) - target_link_libraries (dwrite d2d1) - set_target_properties (dwrite + add_library (dwritetrace MODULE dwrite.def dwritetrace.cpp) + target_link_libraries (dwritetrace d2d1trace) + set_target_properties (dwritetrace PROPERTIES PREFIX "" OUTPUT_NAME dwrite ) - install (TARGETS dwrite LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) + install (TARGETS dwritetrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) endif (DirectX_D2D1_INCLUDE_DIR) # opengl32.dll diff --git a/wrappers/d2d1.def b/wrappers/d2d1.def index da9a813..1f7f8f1 100644 --- a/wrappers/d2d1.def +++ b/wrappers/d2d1.def @@ -1,10 +1,10 @@ LIBRARY "d2d1" EXPORTS - D2D1CreateFactory - D2D1InvertMatrix - D2D1IsMatrixInvertible - D2D1MakeRotateMatrix - D2D1MakeSkewMatrix + D2D1CreateFactory @1 + D2D1MakeRotateMatrix @2 + D2D1MakeSkewMatrix @3 + D2D1IsMatrixInvertible @4 + D2D1InvertMatrix @5 DWriteCreateFactory diff --git a/wrappers/dwritetrace.cpp b/wrappers/dwritetrace.cpp new file mode 100644 index 0000000..9ca69d6 --- /dev/null +++ b/wrappers/dwritetrace.cpp @@ -0,0 +1,6 @@ +#include + +EXTERN_C BOOL WINAPI +DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { + return TRUE; +} -- 2.43.0