shithub: tinygl

ref: 8b60b91ae4d6187e1784d43476e34c5cf056f6c8
dir: /src/clear.c/

View raw version
#include "zgl.h"

void glopClearColor(GLContext* c, GLParam* p) {
	c->clear_color.v[0] = p[1].f;
	c->clear_color.v[1] = p[2].f;
	c->clear_color.v[2] = p[3].f;
	c->clear_color.v[3] = p[4].f;
}
void glopClearDepth(GLContext* c, GLParam* p) { c->clear_depth = p[1].f; }

void glopClear(GLContext* c, GLParam* p) {
	GLint mask = p[1].i;
	GLint z = 0;
	GLint r = (GLint)(c->clear_color.v[0] * COLOR_MULT_MASK);
	GLint g = (GLint)(c->clear_color.v[1] * COLOR_MULT_MASK);
	GLint b = (GLint)(c->clear_color.v[2] * COLOR_MULT_MASK);

	/* TODO : correct value of Z */

	ZB_clear(c->zb, mask & GL_DEPTH_BUFFER_BIT, z, mask & GL_COLOR_BUFFER_BIT, r, g, b);
}