Giter Site home page Giter Site logo

Comments (5)

armadillu avatar armadillu commented on August 17, 2024 2

For anyone trying to change the font on today's master; this currently works:

//create an actual ImGui context before setting up the addon
ImGui::CreateContext();  
//specify a font to use
&ImGui::GetIO().Fonts->AddFontFromFileTTF(&ofToDataPath("fonts/VeraMono.ttf")[0], 14.f);

gui.setup();  //finally setup the addon ofxImGui::Gui setup;

The trick is to create the native ImGui context before adding a font; otherwise ImGui complains about not being initalized... And if you add the font after setting up the addon, it's already too late.

Note that ofxImGui's setup() (gui.setup()) does internally call ImGui::CreateContext(); again, but it's not a problem as this second call is ignored.

from ofximgui.

jvcleave avatar jvcleave commented on August 17, 2024

Can you try after commenting out
io->Fonts->ClearTexData();

from ofximgui.

Geistyp avatar Geistyp commented on August 17, 2024

setup()
AddFont()

comment io->Fonts->ClearTexData();

font texture still not allocate, maybe separate a method to create font texture

bool ImGui_ImplGlfwGL3_CreateFontsTexture()

from ofximgui.

rjx-ray avatar rjx-ray commented on August 17, 2024

Hi Guys,

I'm struggling to use a Unicode font (need it for arrows on buttons)
I have this code in ofApp::setup()

	// Load unicode font, has to be done before gui set up - see https://github.com/jvcleave/ofxImGui/issues/19
	ImGuiIO * io = &ImGui::GetIO();
	ImFontConfig font_config; font_config.OversampleH = 1; font_config.OversampleV = 1; font_config.PixelSnapH = 1;
	// load Lucinda SansRegular Unicode font - file name L_10646.TTF
	unicodeFont = io->Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\L_10646.ttf", 16.0f, NULL, io->Fonts->GetGlyphRangesDefault());
	unsigned char * pixels;
	int width, height;
	io->Fonts->GetTexDataAsRGBA32(&pixels, &width, &height);
	gui.setup();
	ImGui::GetIO().MouseDrawCursor = false;

But I can't work out how to swap between the default font and my unicode one.
I just always get the unicode one, and it doesn't look very crisp.

Then even when using the Unicode font I just get a question mark in the button from this

ImGui::Button(u8"\u2190");  // Unicode left arrow 

Any advice greatly appreciated

Thanks
Richard

from ofximgui.

rjx-ray avatar rjx-ray commented on August 17, 2024

I figured it out eventually, my code is now

// Load unicode font, has to be done before gui set up - see https://github.com/jvcleave/ofxImGui/issues/19	
	io = &ImGui::GetIO();
	//  set default font in font atlas
	ImFont* font0 = io->Fonts->AddFontDefault();
	// load Lucinda SansRegular Unicode font - file name L_10646.TTF
	ImFontConfig font_config; font_config.OversampleH = 1; font_config.OversampleV = 1; font_config.PixelSnapH = 1;
	static const ImWchar glyphRanges[] = {	0x0020, 0x266F, 0, }; // Everything
	unicodeFont = io->Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\L_10646.ttf", 18.0f, &font_config, &glyphRanges[0]);
	unsigned char* pixels;
	int width, height;
	io->Fonts->GetTexDataAsAlpha8(&pixels, &width, &height);

from ofximgui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.