Color is three unit8_t's instead of three floats

This commit is contained in:
Eryn Wells 2013-09-06 23:03:08 -07:00
parent 1f2e7c97d6
commit 4e27e4e960
2 changed files with 10 additions and 7 deletions

View file

@ -9,6 +9,8 @@
#ifndef __BASICS_H
#define __BASICS_H
#include <stdint.h>
typedef struct {
float x, y, z;
@ -43,7 +45,7 @@ Ray ray_init(Vector3 location, Vector3 direction);
typedef struct {
float red, green, blue;
uint8_t red, green, blue, alpha;
} Color;

View file

@ -71,8 +71,8 @@ scene_load(Scene *scene, FILE *scene_file)
void
scene_render(Scene *scene)
{
Color *pixels = malloc(sizeof(Color) * scene->height * scene->width);
if (pixels == NULL) {
scene->pixels = malloc(sizeof(Color) * scene->height * scene->width);
if (scene->pixels == NULL) {
// TODO: Print an error.
return;
}
@ -93,7 +93,7 @@ scene_render(Scene *scene)
// Assemble a ray and trace it.
direction = vector_init(xx, yy, 1);
primary_ray = ray_init(ZeroVector3, direction);
pixels[y * x] = _scene_trace(scene, primary_ray, 0);
scene->pixels[y * scene->height + x] = _scene_trace(scene, primary_ray, 0);
}
}
}
@ -103,9 +103,10 @@ Color
_scene_trace(Scene *scene, const Ray ray, const int depth)
{
Color out_color;
out_color.red = 0.0;
out_color.blue = 0.0;
out_color.green = 0.0;
out_color.red = 0;
out_color.blue = 0;
out_color.green = 0;
out_color.alpha = 255;
return out_color;
}