clamp float colors
This commit is contained in:
parent
51b728cf9a
commit
daaee90a26
|
@ -409,6 +409,8 @@ test(GLenum type, GLint bits, const char *filename)
|
||||||
|
|
||||||
printf("Rendering %d bit/channel image: %s\n", bits, filename);
|
printf("Rendering %d bit/channel image: %s\n", bits, filename);
|
||||||
|
|
||||||
|
OSMesaColorClamp(GL_TRUE);
|
||||||
|
|
||||||
init_context();
|
init_context();
|
||||||
render_image();
|
render_image();
|
||||||
if (Gradient)
|
if (Gradient)
|
||||||
|
@ -421,7 +423,7 @@ test(GLenum type, GLint bits, const char *filename)
|
||||||
if (WriteFiles && filename != NULL) {
|
if (WriteFiles && filename != NULL) {
|
||||||
if (type == GL_UNSIGNED_SHORT) {
|
if (type == GL_UNSIGNED_SHORT) {
|
||||||
GLushort *buffer16 = (GLushort *) buffer;
|
GLushort *buffer16 = (GLushort *) buffer;
|
||||||
GLubyte *buffer8 = malloc(WIDTH * HEIGHT * 4);
|
GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4);
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < WIDTH * HEIGHT * 4; i++)
|
for (i = 0; i < WIDTH * HEIGHT * 4; i++)
|
||||||
buffer8[i] = buffer16[i] >> 8;
|
buffer8[i] = buffer16[i] >> 8;
|
||||||
|
@ -430,8 +432,9 @@ test(GLenum type, GLint bits, const char *filename)
|
||||||
}
|
}
|
||||||
else if (type == GL_FLOAT) {
|
else if (type == GL_FLOAT) {
|
||||||
GLfloat *buffer32 = (GLfloat *) buffer;
|
GLfloat *buffer32 = (GLfloat *) buffer;
|
||||||
GLubyte *buffer8 = malloc(WIDTH * HEIGHT * 4);
|
GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4);
|
||||||
int i;
|
int i;
|
||||||
|
/* colors may be outside [0,1] so we need to clamp */
|
||||||
for (i = 0; i < WIDTH * HEIGHT * 4; i++)
|
for (i = 0; i < WIDTH * HEIGHT * 4; i++)
|
||||||
buffer8[i] = (GLubyte) (buffer32[i] * 255.0);
|
buffer8[i] = (GLubyte) (buffer32[i] * 255.0);
|
||||||
write_ppm(filename, buffer8, WIDTH, HEIGHT);
|
write_ppm(filename, buffer8, WIDTH, HEIGHT);
|
||||||
|
|
Loading…
Reference in New Issue