2022-05-09 01:50:09 -04:00
|
|
|
#include <SDL2/SDL.h>
|
|
|
|
|
2022-08-22 02:15:25 -04:00
|
|
|
#include <bgfx/bgfx.h>
|
|
|
|
|
2022-08-18 12:17:43 -04:00
|
|
|
#include <Common.h>
|
|
|
|
#include <Environment.h>
|
2022-05-09 01:50:09 -04:00
|
|
|
|
|
|
|
namespace ADVect::Graphics {
|
2022-08-27 03:04:39 -04:00
|
|
|
bool Init(u16 width, u16 height);
|
2022-08-21 16:24:13 -04:00
|
|
|
void Shutdown();
|
2022-08-22 02:15:25 -04:00
|
|
|
|
|
|
|
enum MarkupStyle {
|
|
|
|
TEXT_NONE = 0,
|
|
|
|
TEXT_BOLD = 1 << 0,
|
|
|
|
TEXT_ITALIC = 1 << 1,
|
|
|
|
TEXT_UNDERLINE = 1 << 2,
|
|
|
|
TEXT_STRIKETHROUGH = 1 << 3,
|
|
|
|
TEXT_OVERLINE = 1 << 4
|
|
|
|
};
|
|
|
|
|
2022-08-27 03:04:39 -04:00
|
|
|
struct ImageTexture {
|
|
|
|
i32 w, h, channels;
|
|
|
|
u8* buffer;
|
|
|
|
bgfx::TextureHandle tx;
|
|
|
|
};
|
|
|
|
ImageTexture* GetImageTextureFromFile(const std::string& file);
|
|
|
|
|
|
|
|
void DrawTexture(const bgfx::TextureHandle& tex, i32 pos_x, i32 pos_y, u32 w, u32 h, u64 state, const bgfx::ProgramHandle& pg);
|
|
|
|
void DrawTextureImage(const bgfx::TextureHandle& tex, i32 pos_x, i32 pos_y, u32 w, u32 h);
|
|
|
|
void DrawTextureImage(const ImageTexture& img, i32 pos_x, i32 pos_y);
|
2022-08-22 02:15:25 -04:00
|
|
|
void DrawTextureStencilAlpha(const bgfx::TextureHandle& tex, i32 pos_x, i32 pos_y, u32 w, u32 h);
|
|
|
|
|
|
|
|
void RenderString(const NVL::String& s, u32& pos_x, u32& pos_y, u32 col, u32 style_flags);
|
|
|
|
void RenderString(const NVL::String& s, u32&& pos_x, u32&& pos_y, u32 col, u32 style_flags);
|
2022-08-20 22:12:11 -04:00
|
|
|
void RenderStringMarkup(const std::vector<NVL::Environment::Variable>& s, u32 pos_x, u32 pos_y, u32 col);
|
2022-05-09 01:50:09 -04:00
|
|
|
}
|