mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 17:01:51 +00:00
9d243606d0
git-svn-id: https://svn.eduke32.com/eduke32@6919 1a8010ca-5511-0410-912e-c29ae57300e0
41 lines
1.5 KiB
C
41 lines
1.5 KiB
C
/*
|
|
* glsurface.cpp
|
|
* A 32-bit rendering surface that can quickly blit 8-bit paletted buffers implemented in OpenGL.
|
|
*
|
|
* Copyright © 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_ */
|