/* render/render.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_RENDER_H__ #define __INCLUDED_RENDER_H__ #include "core/cvar.h" #include "model/vertexarray.h" #include "render/camera.h" #include "render/state.h" #include "render/draw.h" #include "render/dust.h" #include "render/gl.h" #include "render/text.h" #include "render/textures.h" #include "render/renderext.h" namespace render { /// initialize the render subsystem void init(int width, int height); /// shutdown the render subsystem void shutdown(); /// reset all render data void reset(); /// load game render data void load(); /// load all models referenced by info records void load_info_models(); /// unload game render data void unload(); /// resize viewport void resize(int width, int height); /// render entity axis extern core::Cvar *r_axis; /// render model bounding boxes extern core::Cvar *r_bbox; /// render the spacegrid extern core::Cvar *r_grid; /// render lights and flares extern core::Cvar *r_lights; /// render particle systems extern core::Cvar *r_particles; /// render entity radius extern core::Cvar *r_radius; /// render sky extern core::Cvar *r_sky; /// render wireframe models extern core::Cvar *r_wireframe; /// render vertex normals extern core::Cvar *r_normals; /// render physics extern core::Cvar *r_physics; /// use hardware generated mipmaps (requires OpenGL 1.4, does not work on all cards) extern core::Cvar *r_mipmap; /// use GL_NORMALIZE instead of GL_RESCALE_NORMAL extern core::Cvar *r_normalize; /// render model slots (debug) extern core::Cvar *r_slots; /// draw direction indicators extern core::Cvar *r_indicators; inline RenderExt *ext_render(const core::Entity *entity) { return static_cast(entity->extension((size_t)core::Extension::Render)); } } // namespace render #endif // __INCLUDED_RENDER_H__