Add wxGraphicsContext implementation for wxQt

Add graphics renderer using Qt classes and use it by default in wxQt
port under MSW.

Closes https://github.com/wxWidgets/wxWidgets/pull/1139
This commit is contained in:
Jay Nabonne
2019-01-16 09:23:12 +00:00
committed by Vadim Zeitlin
parent 8571cfed2f
commit 1d117b75f7
6 changed files with 1398 additions and 8 deletions

View File

@@ -5747,7 +5747,8 @@ COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS = \
monodll_uuid.o \ monodll_uuid.o \
monodll_safearray.o \ monodll_safearray.o \
monodll_msw_sound.o \ monodll_msw_sound.o \
monodll_automtn.o monodll_automtn.o \
monodll_qt_graphics.o
@COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS) @COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS)
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_1 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_fontmgrcmn.o \ monodll_fontmgrcmn.o \
@@ -7725,7 +7726,8 @@ COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_1 = \
monolib_uuid.o \ monolib_uuid.o \
monolib_safearray.o \ monolib_safearray.o \
monolib_msw_sound.o \ monolib_msw_sound.o \
monolib_automtn.o monolib_automtn.o \
monolib_qt_graphics.o
@COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_1) @COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_1)
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_3 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_fontmgrcmn.o \ monolib_fontmgrcmn.o \
@@ -9850,7 +9852,8 @@ COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_2 = \
coredll_uuid.o \ coredll_uuid.o \
coredll_safearray.o \ coredll_safearray.o \
coredll_msw_sound.o \ coredll_msw_sound.o \
coredll_automtn.o coredll_automtn.o \
coredll_qt_graphics.o
@COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_2) @COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_2)
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_5 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_fontmgrcmn.o \ coredll_fontmgrcmn.o \
@@ -11570,7 +11573,8 @@ COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_3 = \
corelib_uuid.o \ corelib_uuid.o \
corelib_safearray.o \ corelib_safearray.o \
corelib_msw_sound.o \ corelib_msw_sound.o \
corelib_automtn.o corelib_automtn.o \
corelib_qt_graphics.o
@COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_3) @COND_PLATFORM_WIN32_1@__QT_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___QT_PLATFORM_SRC_OBJECTS_3)
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_7 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_fontmgrcmn.o \ corelib_fontmgrcmn.o \
@@ -16826,6 +16830,9 @@ monodll_qt_utils.o: $(srcdir)/src/qt/utils.cpp $(MONODLL_ODEP)
monodll_qt_window.o: $(srcdir)/src/qt/window.cpp $(MONODLL_ODEP) monodll_qt_window.o: $(srcdir)/src/qt/window.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/qt/window.cpp $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/qt/window.cpp
monodll_qt_graphics.o: $(srcdir)/src/qt/graphics.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/qt/graphics.cpp
monodll_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(MONODLL_ODEP) monodll_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp
@@ -22082,6 +22089,9 @@ monolib_qt_utils.o: $(srcdir)/src/qt/utils.cpp $(MONOLIB_ODEP)
monolib_qt_window.o: $(srcdir)/src/qt/window.cpp $(MONOLIB_ODEP) monolib_qt_window.o: $(srcdir)/src/qt/window.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/qt/window.cpp $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/qt/window.cpp
monolib_qt_graphics.o: $(srcdir)/src/qt/graphics.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/qt/graphics.cpp
monolib_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(MONOLIB_ODEP) monolib_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp
@@ -27998,6 +28008,9 @@ coredll_qt_utils.o: $(srcdir)/src/qt/utils.cpp $(COREDLL_ODEP)
coredll_qt_window.o: $(srcdir)/src/qt/window.cpp $(COREDLL_ODEP) coredll_qt_window.o: $(srcdir)/src/qt/window.cpp $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/qt/window.cpp $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/qt/window.cpp
coredll_qt_graphics.o: $(srcdir)/src/qt/graphics.cpp $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/qt/graphics.cpp
coredll_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(COREDLL_ODEP) coredll_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp
@@ -32249,6 +32262,9 @@ corelib_qt_utils.o: $(srcdir)/src/qt/utils.cpp $(CORELIB_ODEP)
corelib_qt_window.o: $(srcdir)/src/qt/window.cpp $(CORELIB_ODEP) corelib_qt_window.o: $(srcdir)/src/qt/window.cpp $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/qt/window.cpp $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/qt/window.cpp
corelib_qt_graphics.o: $(srcdir)/src/qt/graphics.cpp $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/qt/graphics.cpp
corelib_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(CORELIB_ODEP) corelib_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp

View File

@@ -252,6 +252,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/msw/ole/safearray.cpp src/msw/ole/safearray.cpp
src/msw/sound.cpp src/msw/sound.cpp
src/msw/ole/automtn.cpp src/msw/ole/automtn.cpp
src/qt/graphics.cpp
</set> </set>
<set var="QT_WIN32_HDR" hints="files"> <set var="QT_WIN32_HDR" hints="files">

View File

@@ -175,6 +175,7 @@ set(QT_WIN32_SRC
src/msw/dialup.cpp src/msw/dialup.cpp
src/msw/dib.cpp src/msw/dib.cpp
src/msw/joystick.cpp src/msw/joystick.cpp
src/qt/graphics.cpp
) )
set(QT_WIN32_HDR set(QT_WIN32_HDR

View File

@@ -199,6 +199,7 @@ QT_WIN32_SRC=
src/msw/dib.cpp src/msw/dib.cpp
src/msw/joystick.cpp src/msw/joystick.cpp
src/msw/sound.cpp src/msw/sound.cpp
src/qt/graphics.cpp
QT_WIN32_HDR= QT_WIN32_HDR=
wx/msw/ole/automtn.h wx/msw/ole/automtn.h

View File

@@ -3330,13 +3330,13 @@ wxGraphicsRenderer* wxGraphicsRenderer::GetCairoRenderer()
#endif // wxUSE_CAIRO/!wxUSE_CAIRO #endif // wxUSE_CAIRO/!wxUSE_CAIRO
// MSW and OS X have their own native default renderers, but the other ports // MSW and OS X and Qt on Windows have their own native default renderers, but the other ports
// use Cairo by default // use Cairo by default.
#if !(defined(__WXMSW__) || defined(__WXOSX__)) #if !(defined(__WXMSW__) || defined(__WXOSX__) || (defined(__WXQT__) && defined(__WIN32__)))
wxGraphicsRenderer* wxGraphicsRenderer::GetDefaultRenderer() wxGraphicsRenderer* wxGraphicsRenderer::GetDefaultRenderer()
{ {
return GetCairoRenderer(); return GetCairoRenderer();
} }
#endif // !(__WXMSW__ || __WXOSX__) #endif // !(__WXMSW__ || __WXOSX__ || (defined(__WXQT__) && defined(__WIN32__)))
#endif // wxUSE_GRAPHICS_CONTEXT #endif // wxUSE_GRAPHICS_CONTEXT

1371
src/qt/graphics.cpp Normal file

File diff suppressed because it is too large Load Diff