38 #ifndef AMINO_RX_SCENE_GL_H
39 #define AMINO_RX_SCENE_GL_H
99 const struct aa_gl_globals *globals,
100 size_t n_TF,
const double *TF_abs,
size_t ld_TF);
107 GLfloat M[AA_RESTRICT 16] );
114 GLfloat M[AA_RESTRICT 16] );
122 double znear,
double zfar,
129 GLenum shader_type,
const char* source );
148 AA_API struct aa_gl_globals *
163 struct aa_gl_globals *globals,
164 const double world_E_camera[7]);
171 struct aa_gl_globals *globals,
172 const double world_E_camera_home[7]);
179 struct aa_gl_globals *globals );
186 struct aa_gl_globals *globals,
187 const double world_v_light[3]);
194 struct aa_gl_globals *globals,
202 struct aa_gl_globals *globals,
213 struct aa_gl_globals *globals,
214 const double color[3] );
221 struct aa_gl_globals *globals,
229 struct aa_gl_globals *globals,
230 const double ambient[3] );
237 struct aa_gl_globals *globals,
245 struct aa_gl_globals *globals,
246 int show_collision );
273 struct aa_sg_gl_buffers;
282 struct aa_gl_buffers;
AA_API void aa_gl_globals_set_camera(struct aa_gl_globals *globals, const double world_E_camera[7])
Set the camera transform.
AA_API GLuint aa_gl_create_program(GLuint vert_shader, GLuint frag_shader)
Create a GLSL program and attach shaders.
AA_API void aa_gl_globals_set_light_color(struct aa_gl_globals *globals, const double color[3])
Set the color of the light.
AA_API void aa_gl_mat_perspective(double fovy, double aspect, double znear, double zfar, GLfloat M[16])
Create a OpenGL matrix for a perspective transform.
Container for scene geometry.
AA_API void aa_gl_qutr2glmat(const double E[AA_RESTRICT 7], GLfloat M[AA_RESTRICT 16])
Convert a quaternion-translation to an OpenGL matrix.
AA_API void aa_gl_globals_set_show_collision(struct aa_gl_globals *globals, int show_collision)
Set flag to enable render of collision geometry.
AA_API void aa_gl_globals_unmask_all(struct aa_gl_globals *globals)
Set the display mask value of all frames to false.
AA_API const char * aa_gl_error_string(GLenum error)
Return a string describing the error.
AA_API void aa_gl_globals_destroy(struct aa_gl_globals *globals)
Destroy a aa_gl_globals struct.
AA_API void aa_geom_gl_buffers_init(struct aa_rx_geom *geom)
Initialize OpenGL buffers for geometry object.
AA_API void aa_rx_sg_gl_init(struct aa_rx_sg *sg)
Initialize OpenGL objects in scene graph.
AA_API void aa_gl_globals_set_light_power(struct aa_gl_globals *globals, double power)
Set the power (intensity) of the light.
AA_API void aa_gl_globals_home_camera(struct aa_gl_globals *globals)
Set the camera transform to its "home" value.
AA_API void aa_gl_globals_set_show_visual(struct aa_gl_globals *globals, int show_visual)
Set flag to enable render of visual geometry.
AA_API void aa_gl_globals_set_light_position(struct aa_gl_globals *globals, const double world_v_light[3])
Set the position of the light.
Opaque type for a scene_graph.
AA_API GLuint aa_gl_create_shader(GLenum shader_type, const char *source)
Compile a shader from a text string.
AA_API int aa_gl_globals_is_masked(const struct aa_gl_globals *globals, size_t i)
Return the display mask value of the i'th frame.
AA_API void aa_gl_init()
Initialize GL engine.
#define AA_RESTRICT
Defined restrict keyword based on language flavor.
AA_API struct aa_gl_globals * aa_gl_globals_create()
Container for globals rendering info (Forward declaration)
AA_API void aa_gl_globals_set_camera_home(struct aa_gl_globals *globals, const double world_E_camera_home[7])
Set the camera "home" transform.
AA_API void aa_gl_buffers_cleanup(void)
Destroy previously schedule OpenGL buffers.
#define AA_API
calling and name mangling convention for functions
AA_API void aa_gl_globals_set_perspective(struct aa_gl_globals *globals, double fovy, double aspect, double znear, double zfar)
Set the camera perspective matrix.
AA_API void aa_rx_sg_render(const struct aa_rx_sg *scenegraph, const struct aa_gl_globals *globals, size_t n_TF, const double *TF_abs, size_t ld_TF)
Render the scene graph to the current GL context.
AA_API void aa_gl_buffers_destroy(struct aa_gl_buffers *buffers)
Destroy OpenGL buffers.
AA_API void aa_gl_globals_set_ambient(struct aa_gl_globals *globals, const double ambient[3])
Set the light ambient color.
AA_API void aa_gl_globals_set_aspect(struct aa_gl_globals *globals, double aspect)
Set the camera aspect ratio.
AA_API void aa_gl_tfmat2glmat(const double T[AA_RESTRICT 12], GLfloat M[AA_RESTRICT 16])
Convert a condensed transformation matrix to an OpenGL matrix.
AA_API void aa_gl_globals_mask(struct aa_gl_globals *globals, size_t i, int value)
Set the display mask value of the i'th frame to `value'.
AA_API void aa_gl_buffers_schedule_destroy(struct aa_gl_buffers *buffers)
Schedule destruction of OpenGL buffers.