Color is three unit8_t's instead of three floats
This commit is contained in:
		
							parent
							
								
									1f2e7c97d6
								
							
						
					
					
						commit
						4e27e4e960
					
				
					 2 changed files with 10 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								src/scene.c
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								src/scene.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue