mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-17 18:01:13 +00:00
42 lines
1.5 KiB
C
42 lines
1.5 KiB
C
|
/*
|
|||
|
* glsurface.cpp
|
|||
|
* A 32-bit rendering surface that can quickly blit 8-bit paletted buffers implemented in OpenGL.
|
|||
|
*
|
|||
|
* Copyright <EFBFBD> 2018, Alex Dawson. All rights reserved.
|
|||
|
*/
|
|||
|
|
|||
|
#ifndef GLSURFACE_H_
|
|||
|
#define GLSURFACE_H_
|
|||
|
|
|||
|
#include "compat.h"
|
|||
|
#include "palette.h"
|
|||
|
|
|||
|
// Initialize the glsurface with the Software renderer's buffer resolution.
|
|||
|
// If the Software renderer's resolution and the actual resolution don't match,
|
|||
|
// glsurface will still render at the full size of the screen.
|
|||
|
// If a surface already exists, glsurface_destroy() will be automatically called before re-initializing.
|
|||
|
// Returns whether or not the glsurface could be successfully initialized.
|
|||
|
bool glsurface_initialize(vec2_t inputBufferResolution);
|
|||
|
|
|||
|
// Destroy an existing surface.
|
|||
|
void glsurface_destroy();
|
|||
|
|
|||
|
// Sets the palette at paletteID to contain the byte buffer pointed to by pPalette.
|
|||
|
// If the surface is not initialized, the function returns immediately.
|
|||
|
void glsurface_setPalette(int32_t paletteID, void* pPalette);
|
|||
|
|
|||
|
// Returns a pointer to the start of the surface's pixel buffer
|
|||
|
// Returns NULL if the surface is not initialized.
|
|||
|
void* glsurface_getBuffer();
|
|||
|
|
|||
|
// Returns the resolution of the surface's buffer
|
|||
|
vec2_t glsurface_getBufferResolution();
|
|||
|
|
|||
|
// Blit the surface's pixel buffer to the screen.
|
|||
|
// paletteID is the id of a palette previously set with glsurface_setPalette().
|
|||
|
// Renders as soon as the data has been uploaded.
|
|||
|
// If the surface is not initialized, the function returns immediately.
|
|||
|
void glsurface_blitBuffer(int32_t paletteID);
|
|||
|
|
|||
|
#endif /* GLSURFACE_H_ */
|