Jump to content

How are custom fonts loaded?


RadenTheFolf
 Share

Go to solution Solved by Josh,

Recommended Posts

I'm using the Steam ultra app kit. I created a new project using the project manager and am trying to get font loading to work. I'm not sure if the feature just isn't available on the steam version or if I am missing something.

 

#include "UltraEngine.h"
#include "LoadingWindow.h"



LoadingWindow::LoadingWindow(const char* steamName)
{
		SteamName = steamName;
}

void LoadingWindow::Create()
{
    //Get the displays
    std::vector<std::shared_ptr<UltraEngine::Display>> displays = UltraEngine::GetDisplays();

    //Create window
    Window = CreateWindow("Ultra Engine", 0, 0, 1000, 600, displays[0], UltraEngine::WINDOW_CENTER);
    //Create user interface
    std::shared_ptr<UltraEngine::Interface> ui = UltraEngine::CreateInterface(Window);
    WindowHandel = Window->GetHandle();

    //Create a pixmap
    std::shared_ptr<UltraEngine::Icon> icon = UltraEngine::LoadIcon("Resources/Images/splashbg.svg");
    Icon = icon->Rasterize(2.0);

    // load custom fonts
    auto font = UltraEngine::LoadFont("Resources/Fonts/Inter-Black.ttf");

    UltraEngine::iVec2 sz = ui->root->GetSize();
    std::shared_ptr<UltraEngine::Widget> label1 = CreateLabel("Version: 2023.4.22", 500, 160, 240, 60, ui->root);
    label1->SetFontScale(1.5);
    label1->SetFontBold(true);
    std::shared_ptr<UltraEngine::Widget> lable2 = CreateLabel("Welcome back " + std::string(SteamName) + "!", 500, 210, 300, 60, ui->root);
    lable2->SetFontScale(1.75);
    lable2->SetFontBold(true);
    std::shared_ptr<UltraEngine::Widget> widget = CreateProgressBar(500, 250, 400, 10, ui->root);
    widget->SetProgress(0.0);
    std::shared_ptr<UltraEngine::Widget> label3 = CreateLabel("Loading...", 500, 270, 300, 60, ui->root);

	ProgressTimer = UltraEngine::CreateTimer(500);
    ListenEvent(UltraEngine::EVENT_TIMERTICK, ProgressTimer, UpdateProgress, widget);


    //Show the icon
    ui->root->SetPixmap(Icon);
}


void LoadingWindow::Close()
{
    Window->Close();
}



bool LoadingWindow::UpdateProgress(const UltraEngine::Event& e, std::shared_ptr<UltraEngine::Object> extra)
{
    std::shared_ptr<UltraEngine::Widget> widget = extra->As<UltraEngine::Widget>();
    widget->SetProgress(UltraEngine::Mod(float(e.data) / 20.0f, 1.0f));
    return true;
}

I tried following the example in the documentation but am getting this error no matter how I've tried to load a font.

 

Quote


Error    LNK2019    unresolved external symbol "class std::shared_ptr<class UltraEngine::Font> __cdecl UltraEngine::LoadFont(class UltraEngine::WString const &,enum UltraEngine::LoadFlags)" (?LoadFont@UltraEngine@@YA?AV?$shared_ptr@VFont@UltraEngine@@@std@@AEBVWString@1@W4LoadFlags@1@@Z) referenced in function "public: void __cdecl LoadingWindow::Create(void)" (?Create@LoadingWindow@@QEAAXXZ)    DSToolkit    C:\dev\UAK\DSToolkit\LoadingWindow.obj    1    
 

Am I missing something?

Link to comment
Share on other sites

  • Solution

Custom fonts on Windowed interfaces are currently not supported, but you can adjust the text scale and weight on a per-widget basis,and it will be scaled relatively for different DPI settings. On windowed interfaces, the GUI will use the default system font.

LoadFont is for use with 3D GUIs and sprites, and is only available in Ultra Engine:
https://www.ultraengine.com/learn/LoadFont?lang=cpp

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...