CRM64Pro GDK v0.18.0
A free cross-platform game development kit built on top of SDL 3.0
Loading...
Searching...
No Matches
CRM64Pro

CRM64Pro GDK. More...

Namespaces

namespace  CMem
 CMem: CRM64Pro Memory Manager.

Classes

struct  CDCv2Header
 CDCv2 fixed file header. More...
struct  CDCv2BlockEntry
 CDCv2 fixed block index entry. More...
struct  Position
 Position struct used by Font and GUI Widgets. More...
class  Main
 CRM64Pro GDK Main class. More...
class  Log
 Log Object class. More...
class  LogMgr
 Log Manager class. More...
class  Screen
 Screen Object class. More...
class  ConfigMgr
 Config Manager class. More...
class  Archive
 Archive Object class. More...
class  ArchiveMgr
 Archive Manager class. More...
class  XML
 XML Object class. More...
class  XMLMgr
 XML Manager class. More...
class  Timer
 Timer class. More...
class  Tool
 Tool class. More...
struct  AudioInfo
 Audio metadata information. More...
class  AudioTrack
 Audio Track object class. More...
class  AudioTrackMgr
 Audio Track Manager class. More...
class  Image
 Image Object class. More...
class  ImageMgr
 Image Manager class. More...
class  Cursor
 Cursor Object class. More...
class  CursorMgr
 Cursor Manager class. More...
class  Tile
 Tile Object class. More...
class  TileMgr
 Tile Manager class. More...
class  Sprite
 Sprite Object class. More...
class  SpriteMgr
 Sprite Manager class. More...
class  Font
 Font Object class. More...
class  FontMgr
 Font Manager class. More...
class  GFX
 GFX class. More...
class  Physics
 Physics module class. More...
struct  VideoInfo
 Video metadata and statistics. More...
class  Video
 Video Object class. More...
class  VideoMgr
 Video Manager class. More...
struct  GUITooltipStyle
 Shared tooltip style for one GUI theme or one widget override. More...
struct  GUIThemeSkin
 Theme skin definition for one widget type and one widget state. More...
class  GUITheme
 GUI theme object. More...
class  Widget
 Base class for all GUI widgets. More...
class  WidgetLabel
 Label widget for static text display. More...
class  WidgetImage
 Image widget for static image display. More...
class  WidgetFrame
 Frame widget for separators, outlines and filled rectangles. More...
class  WidgetButton
 Button widget for user actions. More...
class  WidgetCheckBox
 CheckBox widget for toggle and radio-button behavior. More...
class  WidgetProgress
 Progress widget for value display. More...
class  WidgetSlider
 Slider widget for interactive value selection. More...
class  WidgetTextEdit
 TextEdit widget for editable text input. More...
class  WidgetNumberEdit
 NumberEdit widget for numeric text input. More...
class  WidgetList
 List widget with single-selection or interactive multi-selection support. More...
class  WidgetComboBox
 ComboBox widget for drop-down single selection. More...
class  Panel
 Panel Object class. More...
class  Console
 Console Object class. More...
class  DebugWindow
 DebugWindow Object class. More...
class  GUIMgr
 GUI Manager class. More...
struct  SceneCameraParams
 Camera configuration parameters. More...
struct  SceneLayerContext
 Layer Context structure. More...
class  SceneLayer
 Base class for all Scene layer types. More...
class  SceneLayerTile
 TileLayer class for tile-based map layers. More...
struct  SceneShapeData
 Shape geometry data for a SceneObject. More...
struct  SceneObjectTrigger
 Object trigger zone definition. More...
struct  SceneTriggerEvent
 Trigger event payload. More...
class  ISceneObjectFactory
 Factory interface for creating game objects from Tiled type strings. More...
class  SceneObject
 Base class for all Scene game objects. More...
class  SceneLayerObject
 Object layer containing game objects with spatial partitioning. More...
class  SceneLayerImage
 Image layer containing a single image for background/foreground display. More...
class  Scene
 Scene class. More...
class  SceneMgr
 Scene Manager class. More...
class  NetTCP
 NetTCP class. More...
class  ParticleEmitter
 Particle emitter object class. More...
class  ParticleMgr
 Particle manager class. More...

Typedefs

using SceneLayerCallback = function<void(const SceneLayerContext& rContext)>
 Scene layer callback type.
using SceneCameraOffsetCallback = function<bool(Scene& rScene, Sint32 iLayer, SDL_FPoint& ptOffset)>
 Scene camera offset callback type.

Enumerations

enum  eCDCv2ErrorCode : Sint32
 CDCv2-specific error codes.
enum  eCDCv2BlockFlags : Uint32 { CDC2_BLOCK_ACTIVE = 1 << 0 , CDC2_BLOCK_DELETED = 1 << 1 }
 CDCv2 block entry flags. More...
enum  eCDCv2Compression : Uint8 { CDC2_COMP_NONE = 0 , CDC2_COMP_ZLIB = 1 }
 CDCv2 block compression methods. More...
enum  eCDCv2Encryption : Uint8 { CDC2_ENC_NONE = 0 , CDC2_ENC_AES_256_CTR = 1 }
 CDCv2 block encryption methods. More...
enum  eCDCv2ArchiveFlags : Uint64 { CDC2_ARCHIVE_ENCRYPTED_INDEX = 1ULL << 0 , CDC2_ARCHIVE_ENCRYPTED_BLOCKS = 1ULL << 1 }
 CDCv2 archive-level flags. More...
enum  eEventType : Uint32 { ET_C64 = 0xEC64 , ET_GUI_INTERNAL = 0xCFED }
 Custom SDL event types used by CRM64Pro. More...
enum  eEventCode : Sint32 {
  EC_LOGIC = 1 , EC_RENDER , EC_WIDGET_ACTION , EC_WIDGET_MOUSEHOVER ,
  EC_WIDGET_LOSTFOCUS , EC_WIDGET_SELECTIONCHANGED , EC_WIDGET_VALUECHANGED , EC_WIDGET_TOGGLED ,
  EC_WIDGET_VALUECOMMITTED
}
 Event codes delivered via user.code when event.type is ET_C64. One code is delivered per event; values are not bitmask flags. More...
enum  eGeneralStatus : Sint32 {
  GS_DISABLED = 0 , GS_ENABLED = 1 , GS_PAUSED = 2 , GS_HIDDEN = 5 ,
  GS_SHOWN = 9 , GS_END = 16 , GS_HIDING = 1024 , GS_SHOWING = 2048
}
enum  ePlaybackStatus : Sint32 { PS_STOPPED = 0 , PS_PLAYING = 1 , PS_PAUSED = 2 , PS_FINISHED = 3 }
 Playback status for audio and video objects. More...
enum  eErrorCode : Sint32 {
  C64_ERR_INTER = -256 , C64_ERR_PARAM = -512 , C64_ERR_FILOP = -768 , C64_ERR_FILWR = -1024 ,
  C64_ERR_FILRE = -1280 , C64_ERR_ALLOC = -1536 , C64_ERR_OBJNF = -1792 , C64_ERR_STATE = -2048 ,
  C64_ERR_UNSUP = -2304 , C64_ERR_LIMIT = -2560 , C64_ERR_DENIED = -2816
}
 Base error code families used by status-returning methods. More...
enum  ePositionHelper : Sint32 {
  PH_NONE = 0 , PH_SIZE = 0x60000000 , PH_CENTER = 0x61000000 , PH_TOP = 0x62000000 ,
  PH_BOTTOM = 0x63000000 , PH_LEFT = 0x65000000 , PH_RIGHT = 0x66000000 , PH_KEEP = 0x6F000000
}
 Position helpers used by Cursors, Sprites, Fonts, GUI Widgets and Scene. One helper must be selected; values are not bitmask flags. More...
enum  eLogMode : Uint32 {
  LM_NULL = 0 , LM_FILE = 2 , LM_FILEAPPEND = 4 , LM_STDOUT = 8 ,
  LM_CONSOLE = 16
}
enum  eLogLevel : Sint32 {
  LL_OFF = 0 , LL_CRITICAL = 1 , LL_ERROR = 2 , LL_WARNING = 3 ,
  LL_INFO = 4 , LL_DEBUG = 5 , LL_TRACE = 6
}
 Log levels. More...
enum  eConfigAudioDriver : Sint32 { CAD_DEFAULT = 0 , CAD_WASAPI = 1 , CAD_DIRECTSOUND = 2 , CAD_ERROR = -1 }
 Audio drivers. More...
enum  eConfigAudioFreq : Sint32 { CAF_DEFAULT = 0 , CAF_22K = 22050 , CAF_44K = 44100 , CAF_48K = 48000 }
 Audio frequency. More...
enum  eConfigAudioSample : Sint32 { CAS_DEFAULT = 0 , CAS_8 = SDL_AUDIO_U8 , CAS_16 = SDL_AUDIO_S16 , CAS_32 = SDL_AUDIO_F32 }
 Audio sample format. More...
enum  eConfigAudioMode : Sint32 {
  CAM_DEFAULT = 0 , CAM_MONO = 1 , CAM_STEREO = 2 , CAM_SURROUND21 = 3 ,
  CAM_QUAD = 4 , CAM_SURROUND41 = 5 , CAM_SURROUND51 = 6 , CAM_SURROUND61 = 7 ,
  CAM_SURROUND71 = 8
}
 Audio mode. More...
enum  eConfigRendererDriver : Sint32 {
  CRD_DEFAULT = 0 , CRD_SOFTWARE = 1 , CRD_OPENGL = 2 , CRD_OPENGLES2 = 3 ,
  CRD_VULKAN = 4 , CRD_DIRECT3D = 5 , CRD_DIRECT3D11 = 6 , CRD_DIRECT3D12 = 7 ,
  CRD_X11 = 8 , CRD_METAL = 9 , CRD_GPU3D = 10 , CRD_ERROR = -1
}
 Screen renderer drivers. More...
enum  eConfigScreenMode : Sint32 { CSM_WINDOW = 0 , CSM_FULLSCREEN = 1 , CSM_FULLSCREENEXCLUSIVE = 2 }
 Screen modes. More...
enum  eAudioTrackTag : Sint32 { ATT_MUSIC = 1 , ATT_SFX , ATT_VOICE , ATT_CUSTOM }
 Audio track category tag for grouping and batch operations. One value must be selected; values are not bitmask flags. More...
enum  eArchiveBlockStore : Sint32 { ABS_RAW = 1 , ABS_COMPRESSED = 2 , ABS_ENCRYPTED = 3 }
 Archive block storing method. More...
enum  eTimerState : Sint32 { TS_INIT = 0 , TS_RESET = 1 }
 Timer init state. More...
enum  eMsgBoxType : Sint32 {
  MBT_EMPTY = 0 , MBT_ERROR = 1 , MBT_WARNING = 2 , MBT_INFO = 3 ,
  MBT_QUESTION = 4
}
 Message box type. More...
enum  eMsgBoxButton : Uint32 {
  MBB_NONE = 0 , MBB_OK = 1 , MBB_CANCEL = 2 , MBB_YES = 4 ,
  MBB_NO = 8
}
enum  eAudioType : Sint32 {
  AT_NONE = 0 , AT_WAV = 1 , AT_MOD = 2 , AT_OGG = 3 ,
  AT_MP3 = 4 , AT_FLAC = 5 , AT_UNKNOWN = 6
}
 Audio codec/format type. More...
enum  eAudioLoadMode : Sint32 { ALM_AUTO = 0 , ALM_PRELOAD = 1 , ALM_STREAM = 2 }
 Audio loading strategy. More...
enum  eImageFilter : Sint32 {
  IF_NOISE = 1 , IF_BLUR = 2 , IF_NEGATIVE = 3 , IF_GREY = 4 ,
  IF_BW = 5 , IF_WIGGLE = 6 , IF_PIXELATE = 7
}
 Image filters. More...
enum  eSpriteType : Uint8 {
  ST_LOOP = 1 , ST_PINGPONG = 2 , ST_ONESHOT = 4 , ST_ONESHOT_REVERSE = 8 ,
  ST_RANDOM = 16
}
enum  ePhysicsCollisionMode : Uint32 { PCM_AABB = 0 , PCM_SHAPE , PCM_PIXEL }
 Collision mode for Physics overlap checks. More...
enum  eWidgetState : Sint32 {
  WS_DEFAULT = -1 , WS_NORMAL = 0 , WS_HOVERED = 1 , WS_PRESSED = 2 ,
  WS_ACTION = 3 , WS_DEACTIVATED = 4
}
 Widget state. More...
enum  eWidgetType : Sint32 {
  WT_BASE = 0 , WT_LABEL = 1 , WT_IMAGE = 2 , WT_FRAME = 4 ,
  WT_BUTTON = 8 , WT_CHECKBOX = 16 , WT_PROGRESS = 32 , WT_SLIDER = 64 ,
  WT_TEXTEDIT = 256 , WT_NUMBEREDIT = 512 , WT_LIST = 1024 , WT_COMBOBOX = 2048
}
 Widget type. One value must be selected; values are not bitmask flags. More...
enum  eSliderAxis : Sint32 { SA_HORIZONTAL = 0 , SA_VERTICAL = 1 }
 Slider axis. More...
enum  eWidgetFeature : Uint32 {
  WF_DISABLE = 0 , WF_FADE = 0x00010000 , WF_DRAGDROP = 0x00020000 , WF_ENCLOSE = 0x00040000 ,
  WF_DETACH = 0x00080000 , WF_BGFIT = 0x00100000 , WF_BGDISABLE = 0x00200000 , WF_EVENTS = 0x00400000 ,
  WF_MOUSEOVER = 0x00800000 , WF_LOSTFOCUS = 0x01000000
}
 Widget feature flags. More...
enum  ePanelType : Sint32 { PT_MODELESS = 0 , PT_MODAL = 1 , PT_EPHEMERAL = 2 }
 Panel Type. More...
enum  ePanelSizeMode : Sint32 { PSM_MANUAL = 0 , PSM_SCREEN = 1 }
 Panel size mode. More...
enum  ePanelLayout : Uint32 { PL_NONE = 0 , PL_HFLOW = 1 , PL_VFLOW = 2 }
 Panel layout flags. More...
enum  eLayoutJustify : Sint32 { LJ_START = 0 , LJ_CENTER = 1 , LJ_END = 2 , LJ_SPACE = 3 }
 Flow layout distribution along the main axis. More...
enum  eLayoutAlign : Sint32 { LA_START = 0 , LA_CENTER = 1 , LA_END = 2 , LA_STRETCH = 3 }
 Flow layout alignment on the cross axis. More...
enum  eSceneLayerFeature : Uint32 {
  SLF_NONE = 0 , SLF_REPEATX = 1 , SLF_REPEATY = 2 , SLF_UPDATE = 8 ,
  SLF_RENDER = 32 , SLF_SMOOTHSCROLL = 64 , SLF_PAUSE = 256
}
 Features for Scene layers. More...
enum  eSceneDebugOverlay : Uint32 {
  SDO_DISABLE = 0 , SDO_OBJECT_AABB = 1 , SDO_TILE_CELLGRID = 2 , SDO_TRIGGER_ZONES = 4 ,
  SDO_CAMERA_DEADZONE = 8
}
 Scene unified debug overlay flags. More...
enum  eSceneTileSetType : Sint32 { STST_NULL = -1 , STST_TILESET = 0 , STST_COLLECTION = 1 }
 Specifies how the TileSet is organized. More...
enum  eSceneStorageMode : Sint32 { SSM_DISK , SSM_CDC , SSM_INTERNAL }
 Specifies where the tileset data is physically stored. More...
enum  eSceneShapeType : Sint32 {
  SST_RECTANGLE = 0 , SST_ELLIPSE , SST_POINT , SST_POLYGON ,
  SST_POLYLINE , SST_TILE
}
 Specifies the geometric shape type of a SceneObject. More...
enum  eSceneLayerType : Sint32 {
  SLT_EMPTY = 0 , SLT_TILE , SLT_OBJECT , SLT_IMAGE ,
  SLT_USER_START = 8
}
 Specifies the type of a Scene layer. More...
enum  eSceneObjectRenderOrder : Sint32 {
  SORO_INDEX = 0 , SORO_TOPDOWN , SORO_FEET , SORO_Z ,
  SORO_Z_FEET
}
 Specifies object rendering order policy for SceneLayerObject. More...
enum  eSceneTriggerEventType : Uint32 { STET_ENTER = 0 , STET_STAY , STET_EXIT }
 Trigger event type. More...
enum  eSceneCameraMode : Uint32 {
  SCM_MANUAL = 0 , SCM_AUTOSCROLL , SCM_SNAP , SCM_SMOOTH ,
  SCM_DEADZONE , SCM_OFFSET
}
 Camera controller modes for a Scene layer. More...
enum  eNetMsg : Sint32 {
  NM_NOTHING = 0 , NM_DATA = 64 , NM_DATA_ACCEPTED = 66 , NM_DATA_DENIED = 67 ,
  NM_NEWCLIENT = 132 , NM_QUITCLIENT = 133 , NM_CLOSE = 134 , NM_INFO = 135 ,
  NM_PING = 136 , NM_ERROR = 192
}
 Network messages. More...
enum  eNetResult : Sint32 {
  NR_OK = 0 , NR_BAD_PARAMETER = C64_ERR_PARAM , NR_OUT_OF_MEMORY = C64_ERR_ALLOC , NR_NO_INIT = -0x10000 ,
  NR_IS_INIT = -0x10001 , NR_ABORT = -0x10002 , NR_CAN_NOT_CONNECT = -0x10003 , NR_NO_SERVER_RUNNING = -0x10004 ,
  NR_NO_CLIENT_RUNNING = -0x10005 , NR_ONLY_ONE_SERVER = -0x10006 , NR_ONLY_ONE_CLIENT = -0x10007 , NR_WRONG_PORT = -0x10008 ,
  NR_TX_EMPTY_DN = -0x10009 , NR_INVALID_CLIENT = -0x10020 , NR_DUPLICATED_CLIENT = -0x10021 , NR_CLIENT_LIMIT_REACHED = -0x10022 ,
  NR_WRONG_PASSWORD = -0x10023 , NR_LOGIN_DISABLED = -0x10024 , NR_RX_LIMIT_REACHED = -0x10040 , NR_TX_THROTTLED = -0x10041 ,
  NR_CREATE_THREAD = -0x10042 , NR_CLIENT_INTERNAL = -0x10060 , NR_SERVER_INTERNAL = -0x10061 , NR_HASH_MISMATCH = -0x10062 ,
  NR_SEQUENCER_MISMATCH = -0x10063 , NR_SDLNET_INIT = -0x10080 , NR_RX_BAD_HEADER = -0x10081 , NR_RX_BAD_DATA = -0x10082 ,
  NR_TX_BAD_DATA = -0x10083 , NR_RESOLVE_HOST = -0x100A0 , NR_TCP_OPEN = -0x100A1 , NR_ALLOCATE_SOCKET = -0x100A2 ,
  NR_ADD_SOCKET = -0x100A3 , NR_CHECK_SOCKET = -0x100A4
}
 Network result codes. More...
enum  eNetTCPFeature : Uint32 { NTF_DISABLE = 0 , NTF_DISABLE_LOGIN = 1 , NTF_AES_CTR = 2 }
 NetTCP feature flags. More...
enum  eParticleVisual : Uint32 {
  PV_PIXEL = 0 , PV_RECT = 1 , PV_IMAGE = 2 , PV_SPRITE_SHARED = 3 ,
  PV_SPRITE_INSTANCE = 4 , PV_SOFT = 5 , PV_LINE = 6
}
 Particle visual rendering types. More...
enum  eParticleEmitterShape : Uint32 {
  PES_POINT = 0 , PES_LINE = 1 , PES_RECT = 2 , PES_CIRCLE = 3 ,
  PES_RING = 4
}
 Particle emitter geometric shapes. More...
enum  eParticleCollisionMode : Uint32 { PCM_NONE = 0 , PCM_BOUNCE = 1 , PCM_STOP = 2 , PCM_KILL = 3 }
 Particle collision behavior. More...
enum  eParticleEffectPreset : Uint32 {
  PEP_NONE = 0 , PEP_CLOUD = 1 , PEP_SMOKE = 2 , PEP_FIRE = 3 ,
  PEP_RAIN = 4 , PEP_STORM = 5 , PEP_SNOW = 6 , PEP_SHOCKWAVE = 7 ,
  PEP_EXPLOSION = 8 , PEP_SPARKS = 9 , PEP_CONFETTI = 10 , PEP_MAGIC = 11
}
 Particle effect presets. More...

Detailed Description

CRM64Pro GDK.

Enumeration Type Documentation

◆ eCDCv2BlockFlags

CDCv2 block entry flags.

Enumerator
CDC2_BLOCK_ACTIVE 

Index entry references an active block.

CDC2_BLOCK_DELETED 

Index entry references a soft-deleted block.

◆ eCDCv2Compression

CDCv2 block compression methods.

Enumerator
CDC2_COMP_NONE 

Stored payload is not compressed.

CDC2_COMP_ZLIB 

Stored payload is compressed with zlib.

◆ eCDCv2Encryption

CDCv2 block encryption methods.

Enumerator
CDC2_ENC_NONE 

Stored payload is not encrypted.

CDC2_ENC_AES_256_CTR 

Stored payload is encrypted with AES-256-CTR.

◆ eCDCv2ArchiveFlags

CDCv2 archive-level flags.

Enumerator
CDC2_ARCHIVE_ENCRYPTED_INDEX 

Archive index area is encrypted.

CDC2_ARCHIVE_ENCRYPTED_BLOCKS 

Archive contains one or more active encrypted blocks.

◆ eParticleVisual

Particle visual rendering types.

Enumerator
PV_PIXEL 

Render each particle as a pixel.

PV_RECT 

Render each particle as a filled rectangle.

PV_IMAGE 

Render each particle using an Image resource.

PV_SPRITE_SHARED 

Render each particle using a shared Sprite resource.

PV_SPRITE_INSTANCE 

Render each particle using an instanced Sprite resource.

PV_SOFT 

Render each particle as a soft radial glow.

PV_LINE 

Render each particle as a line segment.

◆ eParticleEmitterShape

Particle emitter geometric shapes.

Enumerator
PES_POINT 

Emit from a single point.

PES_LINE 

Emit along a horizontal line centered on emitter position.

PES_RECT 

Emit inside a rectangle centered on emitter position.

PES_CIRCLE 

Emit inside a circle centered on emitter position.

PES_RING 

Emit along a circle edge centered on emitter position.

◆ eParticleCollisionMode

Particle collision behavior.

Enumerator
PCM_NONE 

No particle collision.

PCM_BOUNCE 

Bounce on collision and keep alive.

PCM_STOP 

Stop movement after first collision.

PCM_KILL 

Kill particle on first collision.

◆ eParticleEffectPreset

Particle effect presets.

Enumerator
PEP_NONE 

No preset applied.

PEP_CLOUD 

Soft drifting cloud bank.

PEP_SMOKE 

Rising smoke column.

PEP_FIRE 

Additive flame plume.

PEP_RAIN 

Fast rain streaks.

PEP_STORM 

Heavy storm rain.

PEP_SNOW 

Gentle drifting snow field.

PEP_SHOCKWAVE 

Expanding impact ring.

PEP_EXPLOSION 

One-shot radial explosion burst.

PEP_SPARKS 

Thin fast spark streaks.

PEP_CONFETTI 

Falling confetti shower.

PEP_MAGIC 

Additive magical swirl portal.