Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Problem compìling after r11701 (related to Direct2D)
sodev:
Nope, you broke it more :). wxUSE_GRAPHICS_DIRECT2D is ALWAYS defined, but it has the value 0 if its off and 1 if its on. Your check always returns true but its value seems be 0, your error messages indicate that it doesn't find Direct2D related headers.
The problem is that setup.h does enable wxUSE_GRAPHICS_CONTEXT but not wxUSE_GRAPHICS_DIRECT2D
--- Code: ---// Enable support for Direct2D-based implementation of wxGraphicsContext.
//
// Default is 1 for compilers which support it, i.e. VC10+ currently. If you
// use an earlier MSVC version or another compiler and installed the necessary
// SDK components manually, you need to change this setting.
//
// Recommended setting: 1 for faster and better quality graphics under Windows
// 7 and later systems (if wxUSE_GRAPHICS_GDIPLUS is also enabled, earlier
// systems will fall back on using GDI+).
#if defined(_MSC_VER) && _MSC_VER >= 1600
#define wxUSE_GRAPHICS_DIRECT2D wxUSE_GRAPHICS_CONTEXT
#else
#define wxUSE_GRAPHICS_DIRECT2D 0
#endif
--- End code ---
Easiest fix is to set it 1 in the #else case as well.
Pecan:
Thanks sodev
I reverted my local CB (removing all my dumb changes) and changed setup.h to specify
"#define wxUSE_GRAPHICS_DIRECT2D 1"
That solved the compile problem. But now I get Link errors.
--- Code: ---g++.exe -shared -Wl,--out-implib=devel31_64\libcodeblocks.a -Wl,--dll -Lbase\tinyxml -LC:\usr\Proj\wxWidgets3110\lib\gcc_dll -Ldevel31_64 -Lsdk\scripting\lib .objs31_64\sdk\configmanager-revision.o .objs31_64\sdk\annoyingdialog.o .objs31_64\sdk\autodetectcompilers.o .objs31_64\sdk\base64.o .objs31_64\sdk\blockallocated.o .objs31_64\sdk\cbauibook.o .objs31_64\sdk\cbcolourmanager.o .objs31_64\sdk\cbdebugger_interfaces.o .objs31_64\sdk\cbeditor.o .objs31_64\sdk\cbeditorprintout.o .objs31_64\sdk\cbexception.o .objs31_64\sdk\cbplugin.o .objs31_64\sdk\cbproject.o .objs31_64\sdk\cbstatusbar.o .objs31_64\sdk\cbstyledtextctrl.o .objs31_64\sdk\cbthreadpool.o .objs31_64\sdk\cbtreectrl.o .objs31_64\sdk\cbworkspace.o .objs31_64\sdk\ccmanager.o .objs31_64\sdk\compileoptionsbase.o .objs31_64\sdk\compiler.o .objs31_64\sdk\compilercommandgenerator.o .objs31_64\sdk\compilerfactory.o .objs31_64\sdk\compileroptions.o .objs31_64\sdk\compiletargetbase.o .objs31_64\sdk\configmanager.o .objs31_64\sdk\configurationpanel.o .objs31_64\sdk\configuretoolsdlg.o .objs31_64\sdk\confirmreplacedlg.o .objs31_64\sdk\crc32.o .objs31_64\sdk\debuggermanager.o .objs31_64\sdk\editarrayfiledlg.o .objs31_64\sdk\editarrayorderdlg.o .objs31_64\sdk\editarraystringdlg.o .objs31_64\sdk\editor_hooks.o .objs31_64\sdk\editorbase.o .objs31_64\sdk\editorcolourset.o .objs31_64\sdk\editorlexerloader.o .objs31_64\sdk\editormanager.o .objs31_64\sdk\editpairdlg.o .objs31_64\sdk\editpathdlg.o .objs31_64\sdk\edittooldlg.o .objs31_64\sdk\encodingdetector.o .objs31_64\sdk\externaldepsdlg.o .objs31_64\sdk\filefilters.o .objs31_64\sdk\filegroupsandmasks.o .objs31_64\sdk\filemanager.o .objs31_64\sdk\findreplacedlg.o .objs31_64\sdk\genericmultilinenotesdlg.o .objs31_64\sdk\globals.o .objs31_64\sdk\importers_globals.o .objs31_64\sdk\incremental_select_helper.o .objs31_64\sdk\infowindow.o .objs31_64\sdk\loggers.o .objs31_64\sdk\logmanager.o .objs31_64\sdk\macrosmanager.o .objs31_64\sdk\manager.o .objs31_64\sdk\menuitemsmanager.o .objs31_64\sdk\mozilla_chardet\src\CharDistribution.o .objs31_64\sdk\mozilla_chardet\src\JpCntx.o .objs31_64\sdk\mozilla_chardet\src\LangBulgarianModel.o .objs31_64\sdk\mozilla_chardet\src\LangCyrillicModel.o .objs31_64\sdk\mozilla_chardet\src\LangGreekModel.o .objs31_64\sdk\mozilla_chardet\src\LangHebrewModel.o .objs31_64\sdk\mozilla_chardet\src\LangHungarianModel.o .objs31_64\sdk\mozilla_chardet\src\LangThaiModel.o .objs31_64\sdk\mozilla_chardet\src\nsBig5Prober.o .objs31_64\sdk\mozilla_chardet\src\nsCharSetProber.o .objs31_64\sdk\mozilla_chardet\src\nsEscCharsetProber.o .objs31_64\sdk\mozilla_chardet\src\nsEscSM.o .objs31_64\sdk\mozilla_chardet\src\nsEUCJPProber.o .objs31_64\sdk\mozilla_chardet\src\nsEUCKRProber.o .objs31_64\sdk\mozilla_chardet\src\nsEUCTWProber.o .objs31_64\sdk\mozilla_chardet\src\nsGB2312Prober.o .objs31_64\sdk\mozilla_chardet\src\nsHebrewProber.o .objs31_64\sdk\mozilla_chardet\src\nsLatin1Prober.o .objs31_64\sdk\mozilla_chardet\src\nsMBCSGroupProber.o .objs31_64\sdk\mozilla_chardet\src\nsMBCSSM.o .objs31_64\sdk\mozilla_chardet\src\nsSBCharSetProber.o .objs31_64\sdk\mozilla_chardet\src\nsSBCSGroupProber.o .objs31_64\sdk\mozilla_chardet\src\nsSJISProber.o .objs31_64\sdk\mozilla_chardet\src\nsUniversalDetector.o .objs31_64\sdk\mozilla_chardet\src\nsUTF8Prober.o .objs31_64\sdk\multiselectdlg.o .objs31_64\sdk\newfromtemplatedlg.o .objs31_64\sdk\personalitymanager.o .objs31_64\sdk\pipedprocess.o .objs31_64\sdk\pluginmanager.o .objs31_64\sdk\pluginsconfigurationdlg.o .objs31_64\sdk\printing_types.o .objs31_64\sdk\projectbuildtarget.o .objs31_64\sdk\projectfile.o .objs31_64\sdk\projectfileoptionsdlg.o .objs31_64\sdk\projectlayoutloader.o .objs31_64\sdk\projectloader.o .objs31_64\sdk\projectloader_hooks.o .objs31_64\sdk\projectmanager.o .objs31_64\sdk\projectsfilemasksdlg.o .objs31_64\sdk\projecttemplateloader.o .objs31_64\sdk\scripting\bindings\sc_consts.o .objs31_64\sdk\scripting\bindings\sc_dialog.o .objs31_64\sdk\scripting\bindings\sc_globals.o .objs31_64\sdk\scripting\bindings\sc_io.o .objs31_64\sdk\scripting\bindings\sc_plugin.o .objs31_64\sdk\scripting\bindings\sc_progress.o .objs31_64\sdk\scripting\bindings\sc_util_dialogs.o .objs31_64\sdk\scripting\bindings\sc_wxtypes.o .objs31_64\sdk\scripting\bindings\scriptbindings.o .objs31_64\sdk\scriptingmanager.o .objs31_64\sdk\scriptsecuritywarningdlg.o .objs31_64\sdk\scrollingdialog.o .objs31_64\sdk\sdk_events.o .objs31_64\sdk\searchresultslog.o .objs31_64\sdk\selecttargetdlg.o .objs31_64\sdk\templatemanager.o .objs31_64\sdk\tinywxuni.o .objs31_64\sdk\toolsmanager.o .objs31_64\sdk\uservarmanager.o .objs31_64\sdk\workspaceloader.o .objs31_64\sdk\xtra_res.o -o devel31_64\codeblocks.dll -Wl,--enable-auto-image-base -Wl,--export-all-symbols -Wl,--add-stdcall-alias -Wl,--enable-auto-import -Wl,--no-undefined -lshfolder -ltxml31_64 -lwxscintilla_cb -lsqplus31_64 -lsqstdlib31_64 -lsquirrel31_64 -lgdi32 -lwxmsw31u
devel31_64/libwxscintilla_cb.a(PlatWX.o): In function `SurfaceFontDataD2D::SurfaceFontDataD2D(FontParameters const&)':
C:/usr/Proj/cbBeta31/trunk/src/sdk/wxscintilla/src/PlatWX.cpp:784: undefined reference to `__imp__Z15wxDWriteFactoryv'
devel31_64/libwxscintilla_cb.a(PlatWX.o): In function `SurfaceDataD2D::SurfaceDataD2D(ScintillaWX*)':
C:/usr/Proj/cbBeta31/trunk/src/sdk/wxscintilla/src/PlatWX.cpp:880: undefined reference to `__imp__Z13wxD2D1Factoryv'
C:/usr/Proj/cbBeta31/trunk/src/sdk/wxscintilla/src/PlatWX.cpp:880: undefined reference to `__imp__Z15wxDWriteFactoryv'
devel31_64/libwxscintilla_cb.a(PlatWX.o): In function `SurfaceD2D::SurfaceD2D()':
C:/usr/Proj/cbBeta31/trunk/src/sdk/wxscintilla/src/PlatWX.cpp:1077: undefined reference to `__imp__Z15wxDWriteFactoryv'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (2 minute(s), 37 second(s))
5 error(s), 22 warning(s) (2 minute(s), 37 second(s))
--- End code ---
Is this an indication I need to re-compile wxWidgets 3.1.1 ? If so, what compile settings should I use?
Current my compile settings are (using gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0):
--- Code: ---mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 USE_OPENGL=1 VENDOR=cb CXXFLAGS="-std=gnu++11 -fno-keep-inline-dllexport -fpermissive -Wno-unused-local-typedefs -Wno-ignored-qualifiers -Wno-cast-function-type"
--- End code ---
sodev:
If you change anything in setup.h you always have to recompile wxWidgets, it is its main file to control how it gets compiled.
About compiler settings, i don't know, i build with the https://github.com/rjpcomputing/wxpack scripts, so i do what they do :).
Pecan:
Resolved:
For windows:
1) change the line in setup.h from "#define wxUSE_GRAPHICS_DIRECT2D 0"
"to: "#define wxUSE_GRAPHICS_DIRECT2D 1" (drop the quotes).
For me, setup.h was at ...\wxWidgets3110\lib\gcc_dll\mswu\wx\setup.h
2) Recompile wxWidgets. I did not have to change any build parameters.
3) Recompile CB core, and plugins.
Copy the wxWidgets executables to your CB output folder.
For me, these were: ...\wxWidgets3110\lib\gcc_dll\wxmsw311u_gcc_cb.dll
and ...\wxWidgets3110\lib\gcc_dll\wxmsw311u_gl_gcc_cb.dll
4) My compiler is mingw 8.1.0 gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0)
sodev:
Don't modify the files in the output directories, these files get put there by the build system and it updates them. The correct setup.h to modify is in include\wx\msw
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version