XenevaOS
Loading...
Searching...
No Matches
Macros | Functions
doomgeneric_xe.cpp File Reference
#include "doomgeneric.h"
#include <_xeneva.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <chitralekha.h>
#include <widgets/base.h>
#include <widgets/window.h>
#include <keycode.h>
#include <sys/_keproc.h>
#include <sys/_kefile.h>
#include <sys/_ketime.h>
#include <sys/iocodes.h>
Include dependency graph for doomgeneric_xe.cpp:

Macros

#define DOOM_KEY_UPARROW   0xad
 
#define DOOM_KEY_DOWNARROW   0xaf
 
#define DOOM_KEY_LEFTARROW   0xac
 
#define DOOM_KEY_RIGHTARROW   0xae
 
#define DOOM_KEY_ESCAPE   27
 
#define DOOM_KEY_ENTER   13
 
#define DOOM_KEY_FIRE   0xa3
 
#define DOOM_KEY_USE   0xa2
 
#define DOOM_KEY_RSHIFT   (0x80 + 0x36)
 
#define DOOM_CHROME_H   26
 
#define DOOM_CHROME_BTN_Y0   2
 
#define DOOM_CHROME_BTN_Y1   24
 

Functions

void I_Quit (void)
 
void ChWindowPaintTitlebar (ChWindow *win)
 
void DG_Init ()
 
void DG_DrawFrame ()
 
void DG_SleepMs (uint32_t ms)
 
uint32_t DG_GetTicksMs ()
 
int DG_GetKey (int *pressed, unsigned char *key)
 
void DG_StatBegin (int id)
 
void DG_StatEnd (int id)
 
void DG_StatReport (void)
 
void DG_CloseWindow (void)
 
void DG_SetWindowTitle (const char *title)
 

Macro Definition Documentation

◆ DOOM_CHROME_BTN_Y0

#define DOOM_CHROME_BTN_Y0   2

◆ DOOM_CHROME_BTN_Y1

#define DOOM_CHROME_BTN_Y1   24

◆ DOOM_CHROME_H

#define DOOM_CHROME_H   26

◆ DOOM_KEY_DOWNARROW

#define DOOM_KEY_DOWNARROW   0xaf

◆ DOOM_KEY_ENTER

#define DOOM_KEY_ENTER   13

◆ DOOM_KEY_ESCAPE

#define DOOM_KEY_ESCAPE   27

◆ DOOM_KEY_FIRE

#define DOOM_KEY_FIRE   0xa3

◆ DOOM_KEY_LEFTARROW

#define DOOM_KEY_LEFTARROW   0xac

◆ DOOM_KEY_RIGHTARROW

#define DOOM_KEY_RIGHTARROW   0xae

◆ DOOM_KEY_RSHIFT

#define DOOM_KEY_RSHIFT   (0x80 + 0x36)

◆ DOOM_KEY_UPARROW

#define DOOM_KEY_UPARROW   0xad

doomgeneric platform port for XenevaOS Implements the doomgeneric API using XenevaOS + Chitralekha APIs.

Notes:

  • The framebuffer (DG_ScreenBuffer) is owned by doomgeneric.c (allocated in doomgeneric_Create). DG_Init only falls back to allocating it if it is still NULL (e.g. direct DG_Init use).
  • Timing uses _KeGetCurrentMS (monotonic milliseconds).
  • Input polls the Chitralekha app postbox for DEODHAI_REPLY_KEY_EVENT and maps Xeneva keycodes to Doom keycodes (arrows/fire/use/esc/enter handled explicitly, the rest via ChitralekhaKeyToASCII).

◆ DOOM_KEY_USE

#define DOOM_KEY_USE   0xa2

Function Documentation

◆ ChWindowPaintTitlebar()

void ChWindowPaintTitlebar ( ChWindow *  win)

◆ DG_CloseWindow()

void DG_CloseWindow ( void  )

◆ DG_DrawFrame()

void DG_DrawFrame ( )

◆ DG_GetKey()

int DG_GetKey ( int *  pressed,
unsigned char *  key 
)

◆ DG_GetTicksMs()

uint32_t DG_GetTicksMs ( void  )

◆ DG_Init()

void DG_Init ( )

◆ DG_SetWindowTitle()

void DG_SetWindowTitle ( const char *  title)

◆ DG_SleepMs()

void DG_SleepMs ( uint32_t  ms)

◆ DG_StatBegin()

void DG_StatBegin ( int  id)

◆ DG_StatEnd()

void DG_StatEnd ( int  id)

◆ DG_StatReport()

void DG_StatReport ( void  )

◆ I_Quit()

void I_Quit ( void  )