Code::Blocks Forums

User forums => Help => Topic started by: SomeGuy on August 23, 2017, 09:22:41 pm

Title: Font is thin and blurry
Post by: SomeGuy on August 23, 2017, 09:22:41 pm
Hey,
Got an issue, since I don't like the default code::blocks font I changed it to Hasklig but that's where I ran into a problem. When I select that font it becomes blurry and barely readable, you can see the comparison for yourselves. (http://puu.sh/xhN7j.png) This is the exact same font with the exact same settings. Curiously enough N++ had the same problem but this https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287 (https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287) fixed it. This is on windows 7, 64 bit, Codeblocks 16.01. Forgot to add I already tried reinstalling multiple times.
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 24, 2017, 05:23:33 pm
Quote
curiously enough N++ had the same problem
c::b and n++ use the same editor technology, so it is not surprising that both have the same bug, if the underlying tech has the bug.
Obfuscated is currently working on porting sci to a newer version. He probably is interested in this problem.

Can you open a ticket on SF? Here it probably will get lost...
Also can you compile codeblocks by yourself?
If yes, can you try this branch:
https://github.com/obfuscated/codeblocks_sf/tree/scintilla_3_7_5
and this:
https://github.com/obfuscated/codeblocks_sf/tree/scintilla_3_5_0

Thank you!

[EDIT:] 16.01 is quite old, can you try a nightly build?
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 24, 2017, 09:25:31 pm
Just tried out nightly build, no difference. Gonna try compiling CB versions from those two branches you provided. Tips on how to do it would be appreciated.
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 24, 2017, 09:53:57 pm
for windows the wiki is the right place

http://wiki.codeblocks.org/index.php/Installing_Code::Blocks_from_source_on_Windows
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 25, 2017, 01:47:52 am
After a lot of struggle and silly mistakes I've got to the point where I could finally build Code::Blocks with higher scintilla version, sadly after building for a while it just spewed out more errors.
Code
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxscintilla\src\ScintillaWX.cpp: In member function 'bool ScintillaWX::CreateSystemCaret()':
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxscintilla\src\ScintillaWX.cpp:737:27: error: 'sci' was not declared in this scope
     ::ShowCaret(GetHwndOf(sci));
                           ^
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include/wx/msw/private.h:719:42: note: in definition of macro 'GetHwndOf'
 #define GetHwndOf(win)          ((HWND)((win)->GetHWND()))
                                          ^~~
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxscintilla\src\ScintillaWX.cpp: In member function 'bool ScintillaWX::DestroySystemCaret()':
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxscintilla\src\ScintillaWX.cpp:748:31: error: 'sci' was not declared in this scope
         ::HideCaret(GetHwndOf(sci));
                               ^
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include/wx/msw/private.h:719:42: note: in definition of macro 'GetHwndOf'
 #define GetHwndOf(win)          ((HWND)((win)->GetHWND()))

Honestly getting really frustrated with this, I am compiling something so simple, yet there were so many quirks that weren't explained on wiki or didn't make any sense to me.
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 25, 2017, 07:35:52 pm
Hi,
sorry about your problems.
Obfuscated is a linux dev and he didn't updated the windows builds and i didn't tried them by my self... Here you can find more information: http://forums.codeblocks.org/index.php/topic,22096.msg150405.html#msg150405
Now i compiled it and made all the fixes from the post above. You can find it here:
https://github.com/bluehazzard/codeblocks_sf/tree/scintilla_3_7_5

Quote
yet there were so many quirks that weren't explained on wiki
can you elaborate more? It would be nice to update the wiki, so other user don't have the problem...
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 25, 2017, 09:42:36 pm
Thanks for the fixes, I'll try compiling it again in a bit. Here are the things that should be improved in wiki IMO:

That's all. Do take this criticism with a grain of salt, I don't have much experience compiling programs.

[Edit]: Managed to compile some more and came across more errors. With help of google I fixed them by including WINVER=0x0601 in project defines list. After compiling some more components I managed to get even more errors, here they are (there were more identical winver warnings but I had to delete them since there is a character limit on posting messages):
Code
||=== Build: tinyXML in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: AutoRevision in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: ConsoleRunner in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: Squirrel in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\scripting\squirrel\sqapi.cpp||In function 'SQRESULT sq_setdelegate(HSQUIRRELVM, SQInteger)':|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\scripting\squirrel\sqapi.cpp|784|warning: this 'if' clause does not guard... [-Wmisleading-indentation]|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\scripting\squirrel\sqapi.cpp|784|note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'|
||=== Build: Squirrel std lib in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: SqPlus in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: scintilla in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
:0|0|warning: "WINVER" redefined|
:0|0|note: this is the location of the previous definition|
||=== Build: wxpropgrid in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\propgrid.cpp||In function 'bool wxPGVariantToWxObjectPtr(const wxVariant&, wxObject**)':|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\propgrid.cpp|9879|warning: this 'if' clause does not guard... [-Wmisleading-indentation]|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\propgrid.cpp|9882|note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\propgrid.cpp||In member function 'wxString wxPropertyGridInterface::SaveEditableState(int) const':|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\propgrid.cpp|11094|warning: this 'if' clause does not guard... [-Wmisleading-indentation]|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\propgrid.cpp|11096|note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\props.cpp||In member function 'virtual wxString wxIntProperty::GetValueAsString(int) const':|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\props.cpp|429|warning: this 'if' clause does not guard... [-Wmisleading-indentation]|
C:\Users\SomeGuy\Desktop\codeblocks_sf-scintilla_3_7_5\src\sdk\wxpropgrid\src\props.cpp|432|note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'|
||=== Build: sdk in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: src in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
C:\Users\SomeGuy\Desktop\CODEBL~1\src\src\RESOUR~1\RESOUR~1.RC|137|warning: #warning Manifest: x86.manifest [-Wcpp]|
||=== Build: Abbreviations in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: AStyle in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: Autosave in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: Compiler depslib in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: Compiler in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: Debugger in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
||=== Build: Code-completion in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler) ===|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h||In member function 'bool ClassRegistrar::Register(const WNDCLASS&)':|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: ambiguous overload for 'operator=' (operand types are 'wxString' and 'const LPCSTR {aka const char* const}')|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|676|note: candidate: wxString& wxString::operator=(int) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|676|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid conversion from 'LPCSTR {aka const char*}' to 'int' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|956|note: candidate: wxString& wxString::operator=(wxChar) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|956|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid conversion from 'LPCSTR {aka const char*}' to 'wxChar {aka wchar_t}' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|970|note: candidate: wxString& wxString::operator=(const wxWCharBuffer&) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|970|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid user-defined conversion from 'const LPCSTR {aka const char* const}' to 'const wxWCharBuffer&' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\buffer.h|134|note: candidate is: wxWCharBuffer::wxWCharBuffer(size_t) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\buffer.h|33|note: in definition of macro 'DEFINE_BUFFER'|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\buffer.h|134|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\buffer.h|33|note: in definition of macro 'DEFINE_BUFFER'|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid conversion from 'LPCSTR {aka const char*}' to 'size_t {aka unsigned int}' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid conversion from 'LPCSTR {aka const char*}' to 'size_t {aka unsigned int}' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\buffer.h|134|note:   initializing argument 1 of 'wxWCharBuffer::wxWCharBuffer(size_t)'|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\buffer.h|33|note: in definition of macro 'DEFINE_BUFFER'|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|659|note: candidate: wxString& wxString::operator=(const wxString&) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|659|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: conversion from 'const LPCSTR {aka const char* const}' to 'const wxString' is ambiguous|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|692|note: candidate: wxString::wxString(wxChar, size_t) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|692|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid conversion from 'LPCSTR {aka const char*}' to 'wxChar {aka wchar_t}' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|682|note: candidate: wxString::wxString(int) <near match>|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\string.h|682|note:   conversion of argument 1 would be ill-formed:|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|680|error: invalid conversion from 'LPCSTR {aka const char*}' to 'int' [-fpermissive]|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h||In destructor 'ClassRegistrar::~ClassRegistrar()':|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|695|error: cannot convert 'wxString' to 'LPCSTR {aka const char*}' for argument '1' to 'BOOL UnregisterClassA(LPCSTR, HINSTANCE)'|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h||In function 'wxString wxGetFullModuleName(HMODULE)':|
C:\Users\SomeGuy\Desktop\wxMSW-2.8.12\include\wx\msw\private.h|781|error: cannot convert 'wxStringBuffer' to 'LPSTR {aka char*}' for argument '2' to 'DWORD GetModuleFileNameA(HINSTANCE, LPSTR, DWORD)'|
||=== Build finished: 11 error(s), 151 warning(s) (14 minute(s), 20 second(s)) ===|
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 26, 2017, 02:59:16 am
Quote
Managed to compile some more and came across more errors. With help of google I fixed them by including WINVER=0x0601 in project defines list. After compiling some more components I managed to get even more errors, here they are (there were more identical winver warnings but I had to delete them since there is a character limit on posting messages):
i am always fascinated what can go wrong... on my machine it is a simple open and build, and i have installed 4 compilers...
What you have done should not be needed... The errors you are getting are follow up errors of you change. Can you revert the change, hit rebuild (the blue arrows near the build button) and if it fails please post the build log form the "build log" tab and not from the "build messages" tab.

I appreciate your collaboration. A lot would have given up by now....

BTW I started to overwork the wiki a bit...

[Edit:] Also: do you have multiple compiler installed? What compiler are you using?
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 26, 2017, 04:07:19 am
Straight up just deleted and unzipped the source, checked the settings again seems like it's reverted. Hit rebuild and got errors that previous change fixed. I believe I have three compilers right now. MinGW installed just on it's own, some other MinGW version installed with normal codeblocks version and Visual Studio IDE which comes with a compiler too, no idea what kind though. Currently there is only one in PATH and that's the first I mentioned, here's the version info
(https://puu.sh/xjFE7.png).
I also made sure that wxWidgets and night build of CodeBlocks I am using to build this one uses same compiler. Here is the build log https://pastebin.com/mkVHj2RQ (https://pastebin.com/mkVHj2RQ), it's a pretty big text file, froze my laptop for a bit.
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 26, 2017, 03:11:59 pm
normally i use gcc4.9 and gcc5.x from here http://tdm-gcc.tdragon.net/download
Now i tried gcc 6.4 from here https://sourceforge.net/projects/cbadvanced/files/MinGW%20Builds/TDM/
i had problems by compiling wxWidgets 2.8 but with this command line i was able to build it without problems
Code
mingw32-make.exe -f makefile.gcc BUILD=release MONOLITHIC=1 UNICODE=1 SHARED=1
CXXFLAGS="-D_WIN32_IE=0x0603"
Codeblocks compiled fine after building wxWidgets.

I googled a bit and found out, that this seems to be some mingw bug, so where do you get your compiler from?

Anyway: i tried the font, and it is "light" as in your image. You may have to select the same font as in Notepad++. If i select Haskling-Black codeblocks looks like notepad++
For the Ligatures (<- -> => >> <<): They don't work (if i understand it correctly they should get replaced with one single glyph? )
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 26, 2017, 03:25:39 pm
i investigated future..
To enable ligatures on windows the renderer has to be set to SC_TECHNOLOGY_DIRECTWRITE [1][2]. This is done via the SCI_SETTECHNOLOGY message, but wxScintilla does not implement this functionality [3]. I don't know how the whole system works with the implementation of wxSintilla so i can not give any answer if it is possible to implement this with codeblocks. Probably obfuscated can give more information on this...


[1] http://www.scintilla.org/ScintillaDoc.html#SCI_SETTECHNOLOGY
[2] https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287
[3] http://trac.wxwidgets.org/ticket/17804
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 26, 2017, 07:17:07 pm
Codeblocks compiled fine after building wxWidgets.

I googled a bit and found out, that this seems to be some mingw bug, so where do you get your compiler from?

From the original project site http://www.mingw.org/ (http://www.mingw.org/) and Hooray! I finally managed to compile it and it works properly.  There should be a note in wiki saying what compilers are supported to avoid this kind of situation again. Sadly just like for you, nothing changed and font ligatures still don't work. Weird since from what I gathered a newer scintilla version should support them. Maybe it's not recent enough?

Anyway: i tried the font, and it is "light" as in your image. You may have to select the same font as in Notepad++. If i select Haskling-Black codeblocks looks like notepad++
For the Ligatures (<- -> => >> <<): They don't work (if i understand it correctly they should get replaced with one single glyph? )

You're right, that's the basic idea. It's to make code to look nicer and easier to read. I've also tried selecting other Haskling variants, but even with the n++ modification only original font works.

i investigated future..
To enable ligatures on windows the renderer has to be set to SC_TECHNOLOGY_DIRECTWRITE [1][2]. This is done via the SCI_SETTECHNOLOGY message, but wxScintilla does not implement this functionality [3]. I don't know how the whole system works with the implementation of wxSintilla so i can not give any answer if it is possible to implement this with codeblocks. Probably obfuscated can give more information on this...


[1] http://www.scintilla.org/ScintillaDoc.html#SCI_SETTECHNOLOGY
[2] https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287
[3] http://trac.wxwidgets.org/ticket/17804


That's a shame. Thanks for your research though. I figured that setting SCI_SETTECHNOLOGY 1/2 would be the ultimate solution but since the functionality doesn't exist in codeblocks I am stumped. Also obfuscated hasn't been online in a while but I'll try to submit this as bug in SF, maybe someone will find another solution or a way to implement directwrite.
Title: Re: Font is thin and blurry
Post by: BlueHazzard on August 27, 2017, 01:27:37 am
Quote
I've also tried selecting other Haskling variants, but even with the n++ modification only original font works.
here is a screenshot of my config. This does not seem to be to light, blur
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 27, 2017, 02:27:29 pm
Ahh, I meant ligatures don't work. You can get it to look clear enough but it's not very pleasing to the eye. I'd rather just use it on arch where it works properly.
Title: Re: Font is thin and blurry
Post by: ollydbg on August 27, 2017, 04:24:47 pm
I have to manually edit the embed manifest file inside the codeblocks.exe to make it not blur. You may try it yourself.
Title: Re: Font is thin and blurry
Post by: SomeGuy on August 28, 2017, 06:44:14 pm
I have to manually edit the embed manifest file inside the codeblocks.exe to make it not blur. You may try it yourself.
Forgive my ignorance, but I am not sure how to do that and could you maybe link Biplap's builds you mentioned in that older thread? I can't seem to find them anywhere.