aboutsummaryrefslogtreecommitdiff
#ifndef RENDERER_TYPES_H
#define RENDERER_TYPES_H

#define SKYBOX_ROTATION_SPEED 1.0f

#include "../util/str.h"
#include "../util/array.h"

#include "../math/vector.h"
#include "../math/matrix4x4.h"

#include "shader.h"
#include "texture.h"
#include "model.h"

typedef struct _Material
{
    Texture *normal_map;
    GLfloat shine_damper;
    GLfloat reflectivity;
} Material;

typedef struct
{
    Texture *texture;
    Mesh *cube;
    GLfloat rotation;
} Skybox;

typedef struct _Entity
{
    Model *model;
    Texture *texture;
    Vec3 position;
    float rotX, rotY, rotZ;
    int index; /* Index inside a texture atlas should default to 0 */
    float scale[3];
} Entity;

typedef struct
{
    Vec3 position;
    Vec4 color;
    Vec3 attenuation;
} Light;

#endif // RENDERER_TYPES_H