feat(profile): added definitions for a handful of UI objects

This commit is contained in:
phaneron 2024-09-30 17:19:28 -04:00
parent ac20b7a227
commit 8ff5db67f2
39 changed files with 4484 additions and 183 deletions

View file

@ -3,7 +3,7 @@
#include "gx/types.h"
typedef struct CGxBatch CGxBatch;
DECLARE_STRUCT(CGxBatch);
struct CGxBatch {
// Member variables

View file

@ -3,7 +3,7 @@
#include "gx/device.h"
#include "d3d9/device.h"
#include "external/d3d9/device.h"
typedef struct CGxDeviceD3d CGxDeviceD3d;

View file

@ -0,0 +1,99 @@
#ifndef GX_FONT_H
#define GX_FONT_H
#include "system/types.h"
#include "tempest/rect.h"
#include "storm/list.h"
#include "storm/hash.h"
#include "gx/string.h"
DECLARE_HANDLE(HFACE);
DECLARE_STRUCT(CGxFont);
DECLARE_STRUCT(GLYPHBITMAPDATA);
DECLARE_STRUCT(CHARCODEDESC);
DECLARE_STRUCT(KERNNODE);
DECLARE_STRUCT(KERNINGHASHKEY);
DECLARE_STRUCT(TEXTURECACHE);
DECLARE_STRUCT(TEXTURECACHEROW);
STORM_TS_LIST(CGxFont);
STORM_TS_LIST(CHARCODEDESC);
STORM_TS_HASH(CHARCODEDESC, HASHKEY_NONE);
struct GLYPHBITMAPDATA {
void* m_data;
uint32_t m_dataSize;
uint32_t m_glyphWidth;
uint32_t m_glyphHeight;
uint32_t m_glyphCellWidth;
float m_glyphAdvance;
float m_glyphBearing;
uint32_t m_glyphPitch;
int32_t m_yOffset;
int32_t m_yStart;
CRect m_textureCoords;
};
// struct CHARCODEDESC : TSHashObject<CHARCODEDESC,HASHKEY_NONE>
struct CHARCODEDESC {
TSHashObject_CHARCODEDESC_HASHKEY_NONE b_base;
TSLink_CHARCODEDESC textureRowLink;
TSLink_CHARCODEDESC fontGlyphLink;
uint32_t textureNumber;
uint32_t rowNumber;
uint32_t glyphStartPixel;
uint32_t glyphEndPixel;
GLYPHBITMAPDATA bitmapData;
};
//
// struct KERNNODE : TSHashObject<KERNNODE,KERNINGHASHKEY>
struct KERNNODE {
uint32_t flags;
float proporportionalSpacing;
float fixedWidthSpacing;
};
struct KERNINGHASHKEY {
uint32_t code;
};
struct TEXTURECACHEROW {
uint32_t widestFreeSlot;
TSExplicitList_CHARCODEDESC glyphList;
};
STORM_TS_FIXED_ARRAY(TEXTURECACHEROW);
struct TEXTURECACHE {
void* m_texture;
CGxFont* m_theFace;
uint8_t m_anyDirtyGlyphs;
uint8_t pad[3];
TSFixedArray_TEXTURECACHEROW m_textureRows;
};
STORM_TS_HASH(KERNNODE, KERNINGHASHKEY);
// struct CGxFont : TSLinkedNode<CGxFont>
struct CGxFont {
TSLinkedNode_CGxFont b_base;
TSExplicitList_CGxString m_strings;
TSHashTable_CHARCODEDESC_HASHKEY_NONE m_activeCharacters;
TSHashTable_KERNNODE_KERNINGHASHKEY m_kernInfo;
TSExplicitList_CHARCODEDESC m_activeCharacterCache;
HFACE m_faceHandle;
char m_fontName[260];
uint32_t m_cellHeight;
uint32_t m_baseline;
uint32_t m_flags;
float float184;
float m_pixelsPerUnit;
TEXTURECACHE m_textureCache[8];
uint32_t m_pixelSize;
};
#endif

View file

@ -0,0 +1,50 @@
#ifndef GX_STRING_H
#define GX_STRING_H
#include "tempest/vector.h"
DECLARE_STRUCT(CGxString);
STORM_TS_LIST(CGxString);
// struct CGxString : TSLinkedNode<CGxString>
struct CGxString {
TSLinkedNode_CGxString b_base;
TSLink_CGxString m_fontStringLink;
TSLink_CGxString m_batchedStringLink;
float m_requestedFontHeight;
float m_currentFontHeight;
C3Vector m_position;
CImVector m_fontColor;
CImVector m_shadowColor;
C2Vector m_shadowOffset;
float m_blockWidth;
float m_blockHeight;
void* m_currentFace;
char* m_text;
int32_t m_textLen;
int32_t m_vertJust;
int32_t m_horzJust;
float m_spacing;
uint32_t m_flags;
uint32_t m_texturePagesUsed;
int32_t m_textureEvicted;
uint32_t m_lastGradientStart;
uint32_t m_lastGradientLength;
C3Vector m_viewTranslation;
float m_scale;
uint32_t m_hyperlinkInfo[4];
uint32_t dword90;
uint32_t dword94;
uint32_t dword98;
uint32_t dword9C;
uint32_t dwordA0;
uint32_t dwordA4;
uint32_t dwordA8;
uint32_t dwordAC;
int32_t m_intB0;
void* m_textLines[8];
int32_t m_intD4;
};
#endif

View file

@ -0,0 +1,30 @@
#ifndef GX_STRING_BATCH_H
#define GX_STRING_BATCH_H
#include "storm/list.h"
#include "storm/hash.h"
#include "gx/font.h"
DECLARE_STRUCT(CGxStringBatch);
DECLARE_STRUCT(BATCHEDRENDERFONTDESC);
STORM_TS_HASH(BATCHEDRENDERFONTDESC, HASHKEY_PTR);
STORM_TS_LIST(CGxStringBatch);
// struct BATCHEDRENDERFONTDESC : TSHashObject<BATCHEDRENDERFONTDESC, HASHKEY_PTR>
struct BATCHEDRENDERFONTDESC {
TSHashObject_BATCHEDRENDERFONTDESC_HASHKEY_PTR b_base;
CGxFont* m_face;
// STORM_EXPLICIT_LIST(CGxString, m_batchedStringLink) m_strings;
TSExplicitList_CGxString m_strings;
};
// CGxStringBatch : TSLinkedNode<CGxStringBatch>
struct CGxStringBatch {
TSLinkedNode_CGxStringBatch b_base;
TSHashTable_BATCHEDRENDERFONTDESC_HASHKEY_PTR m_fontBatch;
uint32_t m_flags;
};
#endif