void g_render.render_rectangle(int x, int y, int width, int height, color color);template<class T = int>void g_render.render_rectangle(const math::vec2<T>& pos, const math::vec2<T>& size, color color);
void g_render.render_filled_rectangle(int x, int y, int width, int height, color color);template<class T>void g_render.render_filled_rectangle(const math::vec2<T>& pos, const math::vec2<T>& size, color color);
void g_render.render_circle(int x, int y, int radius, int segments, color color);template<class T = int>void g_render.render_circle(const math::vec2<T>& pos, const math::vec2<T>& size, color color);
template<auto gradient_type = gradient_type_t::HORIZONTAL>void g_render.render_gradient(int x, int y, int width, int height, color from, color to);template<auto gradient_type = gradient_type_t::HORIZONTAL, class T = int>void g_render.render_gradient(const math::vec2<T>& pos, const math::vec2<T>& size, color from, color to);
void g_render.render_text( int x, int y, unsigned int alignment, const font_flags flags, const char* string, LPD3DXFONT font, color color);template<class T = int>void g_render.render_text( const math::vec2<T>& pos, unsigned int alignment, const font_flags flags, const char* string, LPD3DXFONT font, color color);