Subversion Repositories Games.Carmageddon

Rev

Rev 1 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef HARNESS_HOOKS_H
  2. #define HARNESS_HOOKS_H
  3.  
  4. #include "brender.h"
  5. #include "harness/win95_polyfill_defs.h"
  6. #include <stdio.h>
  7.  
  8. typedef enum {
  9.     eFlush_all,
  10.     eFlush_color_buffer
  11. } tRenderer_flush_type;
  12.  
  13. // Platform implementation functions
  14. typedef struct tHarness_platform {
  15.     // Render a fullscreen quad using the specified pixel data
  16.     void (*Renderer_Present)(br_pixelmap* src);
  17.     // Set the 256 color palette to use (BGRA format)
  18.     void (*Renderer_SetPalette)(PALETTEENTRY_* palette);
  19.     // Create a window. Return a handle to the window
  20.     void* (*CreateWindowAndRenderer)(char* title, int x, int y, int nWidth, int nHeight);
  21.     // Get mouse button state
  22.     int (*GetMouseButtons)(int* button_1, int* button_2);
  23.     // Get mouse position
  24.     int (*GetMousePosition)(int* pX, int* pY);
  25.     // Close specified window
  26.     void (*DestroyWindow)(void* window);
  27.     // Process window messages, return any WM_QUIT message
  28.     int (*ProcessWindowMessages)(MSG_* msg);
  29.     // Set position of a window
  30.     int (*SetWindowPos)(void* hWnd, int x, int y, int nWidth, int nHeight);
  31.     // Show/hide the cursor
  32.     int (*ShowCursor)(int show);
  33.     // Get keyboard state. Expected to be in DirectInput key codes
  34.     void (*GetKeyboardState)(unsigned int count, uint8_t* buffer);
  35.     // Sleep
  36.     void (*Sleep)(uint32_t dwMilliseconds);
  37.     // Get ticks
  38.     uint32_t (*GetTicks)(void);
  39.     // Show error message
  40.     int (*ShowErrorMessage)(void* window, char* text, char* caption);
  41.  
  42. } tHarness_platform;
  43.  
  44. extern tHarness_platform gHarness_platform;
  45.  
  46. void Harness_Init(int* argc, char* argv[]);
  47.  
  48. // Hooks are called from original game code.
  49.  
  50. // Filesystem hooks
  51. FILE* Harness_Hook_fopen(const char* pathname, const char* mode);
  52.  
  53. #endif
  54.