Files
GTASource/game/frontend/page_deck/uiPageConfig.cpp
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

82 lines
2.1 KiB
C++

/////////////////////////////////////////////////////////////////////////////////
//
// FILE : uiPageConfig.cpp
// PURPOSE : Config header for the page-deck system. Contains some common defines
// and helper functions.
//
// AUTHOR : james.strain
// STARTED : January 2021
//
/////////////////////////////////////////////////////////////////////////////////
#include "uiPageConfig.h"
#if UI_PAGE_DECK_ENABLED
#include "renderer/rendertargets.h"
namespace uiPageConfig
{
// Force 16:9 scaling on PC for now
#define USE_16_9_SCALING (!RSG_PC || 1)
rage::Vec2f GetUIAreaDip()
{
// All Scaleform movies are authored at this resolution
return Vec2f( float(1280.f), float(720.f) );
}
rage::Vec2f GetScreenArea()
{
#if USE_16_9_SCALING
// On console we only support 16:9, so we turn on default Scaleform scaling
return GetUIAreaDip();
#else // USE_16_9_SCALING
return GetPhysicalArea();
#endif // USE_16_9_SCALING
}
rage::Vec2f GetPhysicalArea()
{
int const c_width = VideoResManager::GetUIWidth();
int const c_height = VideoResManager::GetUIHeight();
return Vec2f( float(c_width), float(c_height) );
}
GFxMovieView::ScaleModeType GetScaleModeType()
{
#if USE_16_9_SCALING
// On console we only support 16:9, so we turn on default Scaleform scaling
return GFxMovieView::SM_ShowAll;
#else // USE_16_9_SCALING
return GFxMovieView::SM_NoScale;
#endif // USE_16_9_SCALING
}
rage::Vec2f GetDipScale()
{
Vec2f const c_screenArea = GetScreenArea();
Vec2f const c_uiDipArea = GetUIAreaDip();
return c_screenArea / c_uiDipArea;
}
char const * GetLabel( atHashString const defaultLabel, atHashString const overrideLabel )
{
char const * result = nullptr;
if( overrideLabel.IsNotNull() )
{
result = TheText.Get( overrideLabel );
}
if( result == nullptr )
{
result = TheText.Get( defaultLabel );
}
return result;
}
}
#endif // UI_PAGE_DECK_ENABLED