first commit
This commit is contained in:
84
src/engine/render/render_shared.h
Normal file
84
src/engine/render/render_shared.h
Normal file
@@ -0,0 +1,84 @@
|
||||
// Shared header for render stuff
|
||||
#ifndef RENDER_SHARED_H
|
||||
#define RENDER_SHARED_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "utils/maths.h"
|
||||
#include "render/color.h"
|
||||
|
||||
enum class BufferAccess
|
||||
{
|
||||
READ_ONLY,
|
||||
WRITE_ONLY,
|
||||
READ_WRITE
|
||||
};
|
||||
|
||||
// texture format
|
||||
enum PixelFormat
|
||||
{
|
||||
PF_UNKNOWN,
|
||||
PF_R8G8B8,
|
||||
PF_R8G8B8A8,
|
||||
PF_R8G8B8F,
|
||||
PF_R8G8B8A8F,
|
||||
|
||||
// Depth formats
|
||||
PF_DEPTH32F
|
||||
};
|
||||
|
||||
// pixel format convertion
|
||||
uint32_t getGLPF(PixelFormat pf);
|
||||
uint32_t getGLInternalPF(PixelFormat pf);
|
||||
uint32_t getGLTypePF(PixelFormat pf);
|
||||
|
||||
// Blending functions
|
||||
enum BlendFactor
|
||||
{
|
||||
BF_ZERO,
|
||||
BF_ONE,
|
||||
BF_SRC_COLOR,
|
||||
BF_ONE_MINUS_SRC_COLOR,
|
||||
BF_DST_COLOR,
|
||||
BF_ONE_MINUS_DST_COLOR,
|
||||
BF_SRC_ALPHA,
|
||||
BF_ONE_MINUS_SRC_ALPHA,
|
||||
BF_DST_ALPHA,
|
||||
BF_ONE_MINUS_DST_ALPHA,
|
||||
BF_CONSTANT_COLOR,
|
||||
BF_ONE_MINUS_CONSTANT_COLOR,
|
||||
BF_CONSTANT_ALPHA,
|
||||
BF_ONE_MINUS_CONSTANT_ALPHA
|
||||
};
|
||||
|
||||
// Blending factor convertion
|
||||
uint32_t GetGLBlendFactor(BlendFactor factor);
|
||||
|
||||
// Base structure for render view (view and projection matrices, viewport settings)
|
||||
struct View
|
||||
{
|
||||
glm::mat4 view;
|
||||
glm::mat4 proj;
|
||||
|
||||
int x, y;
|
||||
int width, height;
|
||||
|
||||
float fov;
|
||||
};
|
||||
|
||||
// Global instance of render view
|
||||
extern View g_renderView;
|
||||
|
||||
// Stretched picture vertex
|
||||
struct StretchedVertex
|
||||
{
|
||||
Vec3 position;
|
||||
Vec2 texcoord;
|
||||
};
|
||||
|
||||
#define MAX_STRETCH_VX 12 * sizeof(StretchedVertex)
|
||||
|
||||
// debugging stuff
|
||||
void check_for_opengl_error();
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user