Open Broadcaster Software
Free, open source software for live streaming and recording
graphics.h File Reference

Go to the source code of this file.

Data Structures

struct  gs_device_loss
 
struct  gs_monitor_info
 
struct  gs_tvertarray
 
struct  gs_vb_data
 
struct  gs_sampler_info
 
struct  gs_display_mode
 
struct  gs_rect
 
struct  gs_shader_param_info
 
struct  gs_effect_param_info
 
struct  gs_window
 
struct  gs_init_data
 

Macros

#define GS_MAX_TEXTURES   8
 
#define GS_BUILD_MIPMAPS   (1 << 0)
 
#define GS_DYNAMIC   (1 << 1)
 
#define GS_RENDER_TARGET   (1 << 2)
 
#define GS_GL_DUMMYTEX   (1 << 3)
 
#define GS_DUP_BUFFER   (1 << 4)
 
#define GS_SHARED_TEX   (1 << 5)
 
#define GS_SHARED_KM_TEX   (1 << 6)
 
#define GS_SUCCESS   0
 
#define GS_ERROR_FAIL   -1
 
#define GS_ERROR_MODULE_NOT_FOUND   -2
 
#define GS_ERROR_NOT_SUPPORTED   -3
 
#define GS_DEVICE_OPENGL   1
 
#define GS_DEVICE_DIRECT3D_11   2
 
#define GS_FLIP_U   (1 << 0)
 
#define GS_FLIP_V   (1 << 1)
 
#define GS_CLEAR_COLOR   (1 << 0)
 
#define GS_CLEAR_DEPTH   (1 << 1)
 
#define GS_CLEAR_STENCIL   (1 << 2)
 
#define GS_USE_DEBUG_MARKERS   0
 
#define GS_DEBUG_MARKER_BEGIN(color, markername)   ((void)0)
 
#define GS_DEBUG_MARKER_BEGIN_FORMAT(color, format, ...)   ((void)0)
 
#define GS_DEBUG_MARKER_END()   ((void)0)
 

Typedefs

typedef struct gs_texture gs_texture_t
 
typedef struct gs_stage_surface gs_stagesurf_t
 
typedef struct gs_zstencil_buffer gs_zstencil_t
 
typedef struct gs_vertex_buffer gs_vertbuffer_t
 
typedef struct gs_index_buffer gs_indexbuffer_t
 
typedef struct gs_sampler_state gs_samplerstate_t
 
typedef struct gs_swap_chain gs_swapchain_t
 
typedef struct gs_timer gs_timer_t
 
typedef struct gs_timer_range gs_timer_range_t
 
typedef struct gs_texture_render gs_texrender_t
 
typedef struct gs_shader gs_shader_t
 
typedef struct gs_shader_param gs_sparam_t
 
typedef struct gs_effect gs_effect_t
 
typedef struct gs_effect_technique gs_technique_t
 
typedef struct gs_effect_pass gs_epass_t
 
typedef struct gs_effect_param gs_eparam_t
 
typedef struct gs_device gs_device_t
 
typedef struct graphics_subsystem graphics_t
 

Enumerations

enum  gs_draw_mode {
  GS_POINTS, GS_LINES, GS_LINESTRIP, GS_TRIS,
  GS_TRISTRIP
}
 
enum  gs_color_format {
  GS_UNKNOWN, GS_A8, GS_R8, GS_RGBA,
  GS_BGRX, GS_BGRA, GS_R10G10B10A2, GS_RGBA16,
  GS_R16, GS_RGBA16F, GS_RGBA32F, GS_RG16F,
  GS_RG32F, GS_R16F, GS_R32F, GS_DXT1,
  GS_DXT3, GS_DXT5, GS_R8G8
}
 
enum  gs_zstencil_format {
  GS_ZS_NONE, GS_Z16, GS_Z24_S8, GS_Z32F,
  GS_Z32F_S8X24
}
 
enum  gs_index_type { GS_UNSIGNED_SHORT, GS_UNSIGNED_LONG }
 
enum  gs_cull_mode { GS_BACK, GS_FRONT, GS_NEITHER }
 
enum  gs_blend_type {
  GS_BLEND_ZERO, GS_BLEND_ONE, GS_BLEND_SRCCOLOR, GS_BLEND_INVSRCCOLOR,
  GS_BLEND_SRCALPHA, GS_BLEND_INVSRCALPHA, GS_BLEND_DSTCOLOR, GS_BLEND_INVDSTCOLOR,
  GS_BLEND_DSTALPHA, GS_BLEND_INVDSTALPHA, GS_BLEND_SRCALPHASAT
}
 
enum  gs_depth_test {
  GS_NEVER, GS_LESS, GS_LEQUAL, GS_EQUAL,
  GS_GEQUAL, GS_GREATER, GS_NOTEQUAL, GS_ALWAYS
}
 
enum  gs_stencil_side { GS_STENCIL_FRONT = 1, GS_STENCIL_BACK, GS_STENCIL_BOTH }
 
enum  gs_stencil_op_type {
  GS_KEEP, GS_ZERO, GS_REPLACE, GS_INCR,
  GS_DECR, GS_INVERT
}
 
enum  gs_cube_sides {
  GS_POSITIVE_X, GS_NEGATIVE_X, GS_POSITIVE_Y, GS_NEGATIVE_Y,
  GS_POSITIVE_Z, GS_NEGATIVE_Z
}
 
enum  gs_sample_filter {
  GS_FILTER_POINT, GS_FILTER_LINEAR, GS_FILTER_ANISOTROPIC, GS_FILTER_MIN_MAG_POINT_MIP_LINEAR,
  GS_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT, GS_FILTER_MIN_POINT_MAG_MIP_LINEAR, GS_FILTER_MIN_LINEAR_MAG_MIP_POINT, GS_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
  GS_FILTER_MIN_MAG_LINEAR_MIP_POINT
}
 
enum  gs_address_mode {
  GS_ADDRESS_CLAMP, GS_ADDRESS_WRAP, GS_ADDRESS_MIRROR, GS_ADDRESS_BORDER,
  GS_ADDRESS_MIRRORONCE
}
 
enum  gs_texture_type { GS_TEXTURE_2D, GS_TEXTURE_3D, GS_TEXTURE_CUBE }
 
enum  gs_shader_param_type {
  GS_SHADER_PARAM_UNKNOWN, GS_SHADER_PARAM_BOOL, GS_SHADER_PARAM_FLOAT, GS_SHADER_PARAM_INT,
  GS_SHADER_PARAM_STRING, GS_SHADER_PARAM_VEC2, GS_SHADER_PARAM_VEC3, GS_SHADER_PARAM_VEC4,
  GS_SHADER_PARAM_INT2, GS_SHADER_PARAM_INT3, GS_SHADER_PARAM_INT4, GS_SHADER_PARAM_MATRIX4X4,
  GS_SHADER_PARAM_TEXTURE
}
 
enum  gs_shader_type { GS_SHADER_VERTEX, GS_SHADER_PIXEL }
 

Functions

EXPORT void gs_shader_destroy (gs_shader_t *shader)
 
EXPORT int gs_shader_get_num_params (const gs_shader_t *shader)
 
EXPORT gs_sparam_tgs_shader_get_param_by_idx (gs_shader_t *shader, uint32_t param)
 
EXPORT gs_sparam_tgs_shader_get_param_by_name (gs_shader_t *shader, const char *name)
 
EXPORT gs_sparam_tgs_shader_get_viewproj_matrix (const gs_shader_t *shader)
 
EXPORT gs_sparam_tgs_shader_get_world_matrix (const gs_shader_t *shader)
 
EXPORT void gs_shader_get_param_info (const gs_sparam_t *param, struct gs_shader_param_info *info)
 
EXPORT void gs_shader_set_bool (gs_sparam_t *param, bool val)
 
EXPORT void gs_shader_set_float (gs_sparam_t *param, float val)
 
EXPORT void gs_shader_set_int (gs_sparam_t *param, int val)
 
EXPORT void gs_shader_set_matrix3 (gs_sparam_t *param, const struct matrix3 *val)
 
EXPORT void gs_shader_set_matrix4 (gs_sparam_t *param, const struct matrix4 *val)
 
EXPORT void gs_shader_set_vec2 (gs_sparam_t *param, const struct vec2 *val)
 
EXPORT void gs_shader_set_vec3 (gs_sparam_t *param, const struct vec3 *val)
 
EXPORT void gs_shader_set_vec4 (gs_sparam_t *param, const struct vec4 *val)
 
EXPORT void gs_shader_set_texture (gs_sparam_t *param, gs_texture_t *val)
 
EXPORT void gs_shader_set_val (gs_sparam_t *param, const void *val, size_t size)
 
EXPORT void gs_shader_set_default (gs_sparam_t *param)
 
EXPORT void gs_shader_set_next_sampler (gs_sparam_t *param, gs_samplerstate_t *sampler)
 
EXPORT void gs_effect_destroy (gs_effect_t *effect)
 
EXPORT gs_technique_tgs_effect_get_technique (const gs_effect_t *effect, const char *name)
 
EXPORT gs_technique_tgs_effect_get_current_technique (const gs_effect_t *effect)
 
EXPORT size_t gs_technique_begin (gs_technique_t *technique)
 
EXPORT void gs_technique_end (gs_technique_t *technique)
 
EXPORT bool gs_technique_begin_pass (gs_technique_t *technique, size_t pass)
 
EXPORT bool gs_technique_begin_pass_by_name (gs_technique_t *technique, const char *name)
 
EXPORT void gs_technique_end_pass (gs_technique_t *technique)
 
EXPORT gs_epass_tgs_technique_get_pass_by_idx (const gs_technique_t *technique, size_t pass)
 
EXPORT gs_epass_tgs_technique_get_pass_by_name (const gs_technique_t *technique, const char *name)
 
EXPORT size_t gs_effect_get_num_params (const gs_effect_t *effect)
 
EXPORT gs_eparam_tgs_effect_get_param_by_idx (const gs_effect_t *effect, size_t param)
 
EXPORT gs_eparam_tgs_effect_get_param_by_name (const gs_effect_t *effect, const char *name)
 
EXPORT size_t gs_param_get_num_annotations (const gs_eparam_t *param)
 
EXPORT gs_eparam_tgs_param_get_annotation_by_idx (const gs_eparam_t *param, size_t annotation)
 
EXPORT gs_eparam_tgs_param_get_annotation_by_name (const gs_eparam_t *param, const char *name)
 
EXPORT bool gs_effect_loop (gs_effect_t *effect, const char *name)
 
EXPORT void gs_effect_update_params (gs_effect_t *effect)
 
EXPORT gs_eparam_tgs_effect_get_viewproj_matrix (const gs_effect_t *effect)
 
EXPORT gs_eparam_tgs_effect_get_world_matrix (const gs_effect_t *effect)
 
EXPORT void gs_effect_get_param_info (const gs_eparam_t *param, struct gs_effect_param_info *info)
 
EXPORT void gs_effect_set_bool (gs_eparam_t *param, bool val)
 
EXPORT void gs_effect_set_float (gs_eparam_t *param, float val)
 
EXPORT void gs_effect_set_int (gs_eparam_t *param, int val)
 
EXPORT void gs_effect_set_matrix4 (gs_eparam_t *param, const struct matrix4 *val)
 
EXPORT void gs_effect_set_vec2 (gs_eparam_t *param, const struct vec2 *val)
 
EXPORT void gs_effect_set_vec3 (gs_eparam_t *param, const struct vec3 *val)
 
EXPORT void gs_effect_set_vec4 (gs_eparam_t *param, const struct vec4 *val)
 
EXPORT void gs_effect_set_texture (gs_eparam_t *param, gs_texture_t *val)
 
EXPORT void gs_effect_set_val (gs_eparam_t *param, const void *val, size_t size)
 
EXPORT void gs_effect_set_default (gs_eparam_t *param)
 
EXPORT size_t gs_effect_get_val_size (gs_eparam_t *param)
 
EXPORT void * gs_effect_get_val (gs_eparam_t *param)
 
EXPORT size_t gs_effect_get_default_val_size (gs_eparam_t *param)
 
EXPORT void * gs_effect_get_default_val (gs_eparam_t *param)
 
EXPORT void gs_effect_set_next_sampler (gs_eparam_t *param, gs_samplerstate_t *sampler)
 
EXPORT void gs_effect_set_color (gs_eparam_t *param, uint32_t argb)
 
EXPORT gs_texrender_tgs_texrender_create (enum gs_color_format format, enum gs_zstencil_format zsformat)
 
EXPORT void gs_texrender_destroy (gs_texrender_t *texrender)
 
EXPORT bool gs_texrender_begin (gs_texrender_t *texrender, uint32_t cx, uint32_t cy)
 
EXPORT void gs_texrender_end (gs_texrender_t *texrender)
 
EXPORT void gs_texrender_reset (gs_texrender_t *texrender)
 
EXPORT gs_texture_tgs_texrender_get_texture (const gs_texrender_t *texrender)
 
EXPORT const char * gs_get_device_name (void)
 
EXPORT int gs_get_device_type (void)
 
EXPORT void gs_enum_adapters (bool(*callback)(void *param, const char *name, uint32_t id), void *param)
 
EXPORT int gs_create (graphics_t **graphics, const char *module, uint32_t adapter)
 
EXPORT void gs_destroy (graphics_t *graphics)
 
EXPORT void gs_enter_context (graphics_t *graphics)
 
EXPORT void gs_leave_context (void)
 
EXPORT graphics_tgs_get_context (void)
 
EXPORT void * gs_get_device_obj (void)
 
EXPORT void gs_matrix_push (void)
 
EXPORT void gs_matrix_pop (void)
 
EXPORT void gs_matrix_identity (void)
 
EXPORT void gs_matrix_transpose (void)
 
EXPORT void gs_matrix_set (const struct matrix4 *matrix)
 
EXPORT void gs_matrix_get (struct matrix4 *dst)
 
EXPORT void gs_matrix_mul (const struct matrix4 *matrix)
 
EXPORT void gs_matrix_rotquat (const struct quat *rot)
 
EXPORT void gs_matrix_rotaa (const struct axisang *rot)
 
EXPORT void gs_matrix_translate (const struct vec3 *pos)
 
EXPORT void gs_matrix_scale (const struct vec3 *scale)
 
EXPORT void gs_matrix_rotaa4f (float x, float y, float z, float angle)
 
EXPORT void gs_matrix_translate3f (float x, float y, float z)
 
EXPORT void gs_matrix_scale3f (float x, float y, float z)
 
EXPORT void gs_render_start (bool b_new)
 
EXPORT void gs_render_stop (enum gs_draw_mode mode)
 
EXPORT gs_vertbuffer_tgs_render_save (void)
 
EXPORT void gs_vertex2f (float x, float y)
 
EXPORT void gs_vertex3f (float x, float y, float z)
 
EXPORT void gs_normal3f (float x, float y, float z)
 
EXPORT void gs_color (uint32_t color)
 
EXPORT void gs_texcoord (float x, float y, int unit)
 
EXPORT void gs_vertex2v (const struct vec2 *v)
 
EXPORT void gs_vertex3v (const struct vec3 *v)
 
EXPORT void gs_normal3v (const struct vec3 *v)
 
EXPORT void gs_color4v (const struct vec4 *v)
 
EXPORT void gs_texcoord2v (const struct vec2 *v, int unit)
 
EXPORT input_tgs_get_input (void)
 
EXPORT gs_effect_tgs_get_effect (void)
 
EXPORT gs_effect_tgs_effect_create_from_file (const char *file, char **error_string)
 
EXPORT gs_effect_tgs_effect_create (const char *effect_string, const char *filename, char **error_string)
 
EXPORT gs_shader_tgs_vertexshader_create_from_file (const char *file, char **error_string)
 
EXPORT gs_shader_tgs_pixelshader_create_from_file (const char *file, char **error_string)
 
EXPORT gs_texture_tgs_texture_create_from_file (const char *file)
 
EXPORT uint8_t * gs_create_texture_file_data (const char *file, enum gs_color_format *format, uint32_t *cx, uint32_t *cy)
 
EXPORT void gs_draw_sprite (gs_texture_t *tex, uint32_t flip, uint32_t width, uint32_t height)
 
EXPORT void gs_draw_sprite_subregion (gs_texture_t *tex, uint32_t flip, uint32_t x, uint32_t y, uint32_t cx, uint32_t cy)
 
EXPORT void gs_draw_cube_backdrop (gs_texture_t *cubetex, const struct quat *rot, float left, float right, float top, float bottom, float znear)
 
EXPORT void gs_reset_viewport (void)
 
EXPORT void gs_set_2d_mode (void)
 
EXPORT void gs_set_3d_mode (double fovy, double znear, double zvar)
 
EXPORT void gs_viewport_push (void)
 
EXPORT void gs_viewport_pop (void)
 
EXPORT void gs_texture_set_image (gs_texture_t *tex, const uint8_t *data, uint32_t linesize, bool invert)
 
EXPORT void gs_cubetexture_set_image (gs_texture_t *cubetex, uint32_t side, const void *data, uint32_t linesize, bool invert)
 
EXPORT void gs_perspective (float fovy, float aspect, float znear, float zfar)
 
EXPORT void gs_blend_state_push (void)
 
EXPORT void gs_blend_state_pop (void)
 
EXPORT void gs_reset_blend_state (void)
 
EXPORT gs_swapchain_tgs_swapchain_create (const struct gs_init_data *data)
 
EXPORT void gs_resize (uint32_t x, uint32_t y)
 
EXPORT void gs_get_size (uint32_t *x, uint32_t *y)
 
EXPORT uint32_t gs_get_width (void)
 
EXPORT uint32_t gs_get_height (void)
 
EXPORT gs_texture_tgs_texture_create (uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags)
 
EXPORT gs_texture_tgs_cubetexture_create (uint32_t size, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags)
 
EXPORT gs_texture_tgs_voltexture_create (uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags)
 
EXPORT gs_zstencil_tgs_zstencil_create (uint32_t width, uint32_t height, enum gs_zstencil_format format)
 
EXPORT gs_stagesurf_tgs_stagesurface_create (uint32_t width, uint32_t height, enum gs_color_format color_format)
 
EXPORT gs_samplerstate_tgs_samplerstate_create (const struct gs_sampler_info *info)
 
EXPORT gs_shader_tgs_vertexshader_create (const char *shader, const char *file, char **error_string)
 
EXPORT gs_shader_tgs_pixelshader_create (const char *shader, const char *file, char **error_string)
 
EXPORT gs_vertbuffer_tgs_vertexbuffer_create (struct gs_vb_data *data, uint32_t flags)
 
EXPORT gs_indexbuffer_tgs_indexbuffer_create (enum gs_index_type type, void *indices, size_t num, uint32_t flags)
 
EXPORT gs_timer_tgs_timer_create ()
 
EXPORT gs_timer_range_tgs_timer_range_create ()
 
EXPORT enum gs_texture_type gs_get_texture_type (const gs_texture_t *texture)
 
EXPORT void gs_load_vertexbuffer (gs_vertbuffer_t *vertbuffer)
 
EXPORT void gs_load_indexbuffer (gs_indexbuffer_t *indexbuffer)
 
EXPORT void gs_load_texture (gs_texture_t *tex, int unit)
 
EXPORT void gs_load_samplerstate (gs_samplerstate_t *samplerstate, int unit)
 
EXPORT void gs_load_vertexshader (gs_shader_t *vertshader)
 
EXPORT void gs_load_pixelshader (gs_shader_t *pixelshader)
 
EXPORT void gs_load_default_samplerstate (bool b_3d, int unit)
 
EXPORT gs_shader_tgs_get_vertex_shader (void)
 
EXPORT gs_shader_tgs_get_pixel_shader (void)
 
EXPORT gs_texture_tgs_get_render_target (void)
 
EXPORT gs_zstencil_tgs_get_zstencil_target (void)
 
EXPORT void gs_set_render_target (gs_texture_t *tex, gs_zstencil_t *zstencil)
 
EXPORT void gs_set_cube_render_target (gs_texture_t *cubetex, int side, gs_zstencil_t *zstencil)
 
EXPORT void gs_copy_texture (gs_texture_t *dst, gs_texture_t *src)
 
EXPORT void gs_copy_texture_region (gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h)
 
EXPORT void gs_stage_texture (gs_stagesurf_t *dst, gs_texture_t *src)
 
EXPORT void gs_begin_frame (void)
 
EXPORT void gs_begin_scene (void)
 
EXPORT void gs_draw (enum gs_draw_mode draw_mode, uint32_t start_vert, uint32_t num_verts)
 
EXPORT void gs_end_scene (void)
 
EXPORT void gs_load_swapchain (gs_swapchain_t *swapchain)
 
EXPORT void gs_clear (uint32_t clear_flags, const struct vec4 *color, float depth, uint8_t stencil)
 
EXPORT void gs_present (void)
 
EXPORT void gs_flush (void)
 
EXPORT void gs_set_cull_mode (enum gs_cull_mode mode)
 
EXPORT enum gs_cull_mode gs_get_cull_mode (void)
 
EXPORT void gs_enable_blending (bool enable)
 
EXPORT void gs_enable_depth_test (bool enable)
 
EXPORT void gs_enable_stencil_test (bool enable)
 
EXPORT void gs_enable_stencil_write (bool enable)
 
EXPORT void gs_enable_color (bool red, bool green, bool blue, bool alpha)
 
EXPORT void gs_blend_function (enum gs_blend_type src, enum gs_blend_type dest)
 
EXPORT void gs_blend_function_separate (enum gs_blend_type src_c, enum gs_blend_type dest_c, enum gs_blend_type src_a, enum gs_blend_type dest_a)
 
EXPORT void gs_depth_function (enum gs_depth_test test)
 
EXPORT void gs_stencil_function (enum gs_stencil_side side, enum gs_depth_test test)
 
EXPORT void gs_stencil_op (enum gs_stencil_side side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass)
 
EXPORT void gs_set_viewport (int x, int y, int width, int height)
 
EXPORT void gs_get_viewport (struct gs_rect *rect)
 
EXPORT void gs_set_scissor_rect (const struct gs_rect *rect)
 
EXPORT void gs_ortho (float left, float right, float top, float bottom, float znear, float zfar)
 
EXPORT void gs_frustum (float left, float right, float top, float bottom, float znear, float zfar)
 
EXPORT void gs_projection_push (void)
 
EXPORT void gs_projection_pop (void)
 
EXPORT void gs_swapchain_destroy (gs_swapchain_t *swapchain)
 
EXPORT void gs_texture_destroy (gs_texture_t *tex)
 
EXPORT uint32_t gs_texture_get_width (const gs_texture_t *tex)
 
EXPORT uint32_t gs_texture_get_height (const gs_texture_t *tex)
 
EXPORT enum gs_color_format gs_texture_get_color_format (const gs_texture_t *tex)
 
EXPORT bool gs_texture_map (gs_texture_t *tex, uint8_t **ptr, uint32_t *linesize)
 
EXPORT void gs_texture_unmap (gs_texture_t *tex)
 
EXPORT bool gs_texture_is_rect (const gs_texture_t *tex)
 
EXPORT void * gs_texture_get_obj (gs_texture_t *tex)
 
EXPORT void gs_cubetexture_destroy (gs_texture_t *cubetex)
 
EXPORT uint32_t gs_cubetexture_get_size (const gs_texture_t *cubetex)
 
EXPORT enum gs_color_format gs_cubetexture_get_color_format (const gs_texture_t *cubetex)
 
EXPORT void gs_voltexture_destroy (gs_texture_t *voltex)
 
EXPORT uint32_t gs_voltexture_get_width (const gs_texture_t *voltex)
 
EXPORT uint32_t gs_voltexture_get_height (const gs_texture_t *voltex)
 
EXPORT uint32_t gs_voltexture_get_depth (const gs_texture_t *voltex)
 
EXPORT enum gs_color_format gs_voltexture_get_color_format (const gs_texture_t *voltex)
 
EXPORT void gs_stagesurface_destroy (gs_stagesurf_t *stagesurf)
 
EXPORT uint32_t gs_stagesurface_get_width (const gs_stagesurf_t *stagesurf)
 
EXPORT uint32_t gs_stagesurface_get_height (const gs_stagesurf_t *stagesurf)
 
EXPORT enum gs_color_format gs_stagesurface_get_color_format (const gs_stagesurf_t *stagesurf)
 
EXPORT bool gs_stagesurface_map (gs_stagesurf_t *stagesurf, uint8_t **data, uint32_t *linesize)
 
EXPORT void gs_stagesurface_unmap (gs_stagesurf_t *stagesurf)
 
EXPORT void gs_zstencil_destroy (gs_zstencil_t *zstencil)
 
EXPORT void gs_samplerstate_destroy (gs_samplerstate_t *samplerstate)
 
EXPORT void gs_vertexbuffer_destroy (gs_vertbuffer_t *vertbuffer)
 
EXPORT void gs_vertexbuffer_flush (gs_vertbuffer_t *vertbuffer)
 
EXPORT void gs_vertexbuffer_flush_direct (gs_vertbuffer_t *vertbuffer, const struct gs_vb_data *data)
 
EXPORT struct gs_vb_datags_vertexbuffer_get_data (const gs_vertbuffer_t *vertbuffer)
 
EXPORT void gs_indexbuffer_destroy (gs_indexbuffer_t *indexbuffer)
 
EXPORT void gs_indexbuffer_flush (gs_indexbuffer_t *indexbuffer)
 
EXPORT void gs_indexbuffer_flush_direct (gs_indexbuffer_t *indexbuffer, const void *data)
 
EXPORT void * gs_indexbuffer_get_data (const gs_indexbuffer_t *indexbuffer)
 
EXPORT size_t gs_indexbuffer_get_num_indices (const gs_indexbuffer_t *indexbuffer)
 
EXPORT enum gs_index_type gs_indexbuffer_get_type (const gs_indexbuffer_t *indexbuffer)
 
EXPORT void gs_timer_destroy (gs_timer_t *timer)
 
EXPORT void gs_timer_begin (gs_timer_t *timer)
 
EXPORT void gs_timer_end (gs_timer_t *timer)
 
EXPORT bool gs_timer_get_data (gs_timer_t *timer, uint64_t *ticks)
 
EXPORT void gs_timer_range_destroy (gs_timer_range_t *timer)
 
EXPORT void gs_timer_range_begin (gs_timer_range_t *range)
 
EXPORT void gs_timer_range_end (gs_timer_range_t *range)
 
EXPORT bool gs_timer_range_get_data (gs_timer_range_t *range, bool *disjoint, uint64_t *frequency)
 
EXPORT bool gs_nv12_available (void)
 
EXPORT void gs_debug_marker_begin (const float color[4], const char *markername)
 
EXPORT void gs_debug_marker_begin_format (const float color[4], const char *format,...)
 
EXPORT void gs_debug_marker_end (void)
 

Macro Definition Documentation

◆ GS_BUILD_MIPMAPS

#define GS_BUILD_MIPMAPS   (1 << 0)

◆ GS_CLEAR_COLOR

#define GS_CLEAR_COLOR   (1 << 0)

◆ GS_CLEAR_DEPTH

#define GS_CLEAR_DEPTH   (1 << 1)

◆ GS_CLEAR_STENCIL

#define GS_CLEAR_STENCIL   (1 << 2)

◆ GS_DEBUG_MARKER_BEGIN

#define GS_DEBUG_MARKER_BEGIN (   color,
  markername 
)    ((void)0)

◆ GS_DEBUG_MARKER_BEGIN_FORMAT

#define GS_DEBUG_MARKER_BEGIN_FORMAT (   color,
  format,
  ... 
)    ((void)0)

◆ GS_DEBUG_MARKER_END

#define GS_DEBUG_MARKER_END ( )    ((void)0)

◆ GS_DEVICE_DIRECT3D_11

#define GS_DEVICE_DIRECT3D_11   2

◆ GS_DEVICE_OPENGL

#define GS_DEVICE_OPENGL   1

◆ GS_DUP_BUFFER

#define GS_DUP_BUFFER   (1 << 4)

< do not pass buffer ownership when creating a vertex/index buffer

◆ GS_DYNAMIC

#define GS_DYNAMIC   (1 << 1)

◆ GS_ERROR_FAIL

#define GS_ERROR_FAIL   -1

◆ GS_ERROR_MODULE_NOT_FOUND

#define GS_ERROR_MODULE_NOT_FOUND   -2

◆ GS_ERROR_NOT_SUPPORTED

#define GS_ERROR_NOT_SUPPORTED   -3

◆ GS_FLIP_U

#define GS_FLIP_U   (1 << 0)

◆ GS_FLIP_V

#define GS_FLIP_V   (1 << 1)

◆ GS_GL_DUMMYTEX

#define GS_GL_DUMMYTEX   (1 << 3)

< texture with no allocated texture data

◆ GS_MAX_TEXTURES

#define GS_MAX_TEXTURES   8

◆ GS_RENDER_TARGET

#define GS_RENDER_TARGET   (1 << 2)

◆ GS_SHARED_KM_TEX

#define GS_SHARED_KM_TEX   (1 << 6)

◆ GS_SHARED_TEX

#define GS_SHARED_TEX   (1 << 5)

◆ GS_SUCCESS

#define GS_SUCCESS   0

◆ GS_USE_DEBUG_MARKERS

#define GS_USE_DEBUG_MARKERS   0

Typedef Documentation

◆ graphics_t

◆ gs_device_t

typedef struct gs_device gs_device_t

◆ gs_effect_t

typedef struct gs_effect gs_effect_t

◆ gs_eparam_t

typedef struct gs_effect_param gs_eparam_t

◆ gs_epass_t

typedef struct gs_effect_pass gs_epass_t

◆ gs_indexbuffer_t

typedef struct gs_index_buffer gs_indexbuffer_t

◆ gs_samplerstate_t

typedef struct gs_sampler_state gs_samplerstate_t

◆ gs_shader_t

typedef struct gs_shader gs_shader_t

◆ gs_sparam_t

typedef struct gs_shader_param gs_sparam_t

◆ gs_stagesurf_t

typedef struct gs_stage_surface gs_stagesurf_t

◆ gs_swapchain_t

typedef struct gs_swap_chain gs_swapchain_t

◆ gs_technique_t

◆ gs_texrender_t

typedef struct gs_texture_render gs_texrender_t

◆ gs_texture_t

typedef struct gs_texture gs_texture_t

◆ gs_timer_range_t

typedef struct gs_timer_range gs_timer_range_t

◆ gs_timer_t

typedef struct gs_timer gs_timer_t

◆ gs_vertbuffer_t

typedef struct gs_vertex_buffer gs_vertbuffer_t

◆ gs_zstencil_t

typedef struct gs_zstencil_buffer gs_zstencil_t

Enumeration Type Documentation

◆ gs_address_mode

Enumerator
GS_ADDRESS_CLAMP 
GS_ADDRESS_WRAP 
GS_ADDRESS_MIRROR 
GS_ADDRESS_BORDER 
GS_ADDRESS_MIRRORONCE 

◆ gs_blend_type

Enumerator
GS_BLEND_ZERO 
GS_BLEND_ONE 
GS_BLEND_SRCCOLOR 
GS_BLEND_INVSRCCOLOR 
GS_BLEND_SRCALPHA 
GS_BLEND_INVSRCALPHA 
GS_BLEND_DSTCOLOR 
GS_BLEND_INVDSTCOLOR 
GS_BLEND_DSTALPHA 
GS_BLEND_INVDSTALPHA 
GS_BLEND_SRCALPHASAT 

◆ gs_color_format

Enumerator
GS_UNKNOWN 
GS_A8 
GS_R8 
GS_RGBA 
GS_BGRX 
GS_BGRA 
GS_R10G10B10A2 
GS_RGBA16 
GS_R16 
GS_RGBA16F 
GS_RGBA32F 
GS_RG16F 
GS_RG32F 
GS_R16F 
GS_R32F 
GS_DXT1 
GS_DXT3 
GS_DXT5 
GS_R8G8 

◆ gs_cube_sides

Enumerator
GS_POSITIVE_X 
GS_NEGATIVE_X 
GS_POSITIVE_Y 
GS_NEGATIVE_Y 
GS_POSITIVE_Z 
GS_NEGATIVE_Z 

◆ gs_cull_mode

Enumerator
GS_BACK 
GS_FRONT 
GS_NEITHER 

◆ gs_depth_test

Enumerator
GS_NEVER 
GS_LESS 
GS_LEQUAL 
GS_EQUAL 
GS_GEQUAL 
GS_GREATER 
GS_NOTEQUAL 
GS_ALWAYS 

◆ gs_draw_mode

Enumerator
GS_POINTS 
GS_LINES 
GS_LINESTRIP 
GS_TRIS 
GS_TRISTRIP 

◆ gs_index_type

Enumerator
GS_UNSIGNED_SHORT 
GS_UNSIGNED_LONG 

◆ gs_sample_filter

Enumerator
GS_FILTER_POINT 
GS_FILTER_LINEAR 
GS_FILTER_ANISOTROPIC 
GS_FILTER_MIN_MAG_POINT_MIP_LINEAR 
GS_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 
GS_FILTER_MIN_POINT_MAG_MIP_LINEAR 
GS_FILTER_MIN_LINEAR_MAG_MIP_POINT 
GS_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 
GS_FILTER_MIN_MAG_LINEAR_MIP_POINT 

◆ gs_shader_param_type

Enumerator
GS_SHADER_PARAM_UNKNOWN 
GS_SHADER_PARAM_BOOL 
GS_SHADER_PARAM_FLOAT 
GS_SHADER_PARAM_INT 
GS_SHADER_PARAM_STRING 
GS_SHADER_PARAM_VEC2 
GS_SHADER_PARAM_VEC3 
GS_SHADER_PARAM_VEC4 
GS_SHADER_PARAM_INT2 
GS_SHADER_PARAM_INT3 
GS_SHADER_PARAM_INT4 
GS_SHADER_PARAM_MATRIX4X4 
GS_SHADER_PARAM_TEXTURE 

◆ gs_shader_type

Enumerator
GS_SHADER_VERTEX 
GS_SHADER_PIXEL 

◆ gs_stencil_op_type

Enumerator
GS_KEEP 
GS_ZERO 
GS_REPLACE 
GS_INCR 
GS_DECR 
GS_INVERT 

◆ gs_stencil_side

Enumerator
GS_STENCIL_FRONT 
GS_STENCIL_BACK 
GS_STENCIL_BOTH 

◆ gs_texture_type

Enumerator
GS_TEXTURE_2D 
GS_TEXTURE_3D 
GS_TEXTURE_CUBE 

◆ gs_zstencil_format

Enumerator
GS_ZS_NONE 
GS_Z16 
GS_Z24_S8 
GS_Z32F 
GS_Z32F_S8X24 

Function Documentation

◆ gs_begin_frame()

EXPORT void gs_begin_frame ( void  )

◆ gs_begin_scene()

EXPORT void gs_begin_scene ( void  )

◆ gs_blend_function()

EXPORT void gs_blend_function ( enum gs_blend_type  src,
enum gs_blend_type  dest 
)

◆ gs_blend_function_separate()

EXPORT void gs_blend_function_separate ( enum gs_blend_type  src_c,
enum gs_blend_type  dest_c,
enum gs_blend_type  src_a,
enum gs_blend_type  dest_a 
)

◆ gs_blend_state_pop()

EXPORT void gs_blend_state_pop ( void  )

◆ gs_blend_state_push()

EXPORT void gs_blend_state_push ( void  )

◆ gs_clear()

EXPORT void gs_clear ( uint32_t  clear_flags,
const struct vec4 color,
float  depth,
uint8_t  stencil 
)

◆ gs_color()

EXPORT void gs_color ( uint32_t  color)

◆ gs_color4v()

EXPORT void gs_color4v ( const struct vec4 v)

◆ gs_copy_texture()

EXPORT void gs_copy_texture ( gs_texture_t dst,
gs_texture_t src 
)

◆ gs_copy_texture_region()

EXPORT void gs_copy_texture_region ( gs_texture_t dst,
uint32_t  dst_x,
uint32_t  dst_y,
gs_texture_t src,
uint32_t  src_x,
uint32_t  src_y,
uint32_t  src_w,
uint32_t  src_h 
)

◆ gs_create()

EXPORT int gs_create ( graphics_t **  graphics,
const char *  module,
uint32_t  adapter 
)

◆ gs_create_texture_file_data()

EXPORT uint8_t* gs_create_texture_file_data ( const char *  file,
enum gs_color_format format,
uint32_t *  cx,
uint32_t *  cy 
)

◆ gs_cubetexture_create()

EXPORT gs_texture_t* gs_cubetexture_create ( uint32_t  size,
enum gs_color_format  color_format,
uint32_t  levels,
const uint8_t **  data,
uint32_t  flags 
)

◆ gs_cubetexture_destroy()

EXPORT void gs_cubetexture_destroy ( gs_texture_t cubetex)

◆ gs_cubetexture_get_color_format()

EXPORT enum gs_color_format gs_cubetexture_get_color_format ( const gs_texture_t cubetex)

◆ gs_cubetexture_get_size()

EXPORT uint32_t gs_cubetexture_get_size ( const gs_texture_t cubetex)

◆ gs_cubetexture_set_image()

EXPORT void gs_cubetexture_set_image ( gs_texture_t cubetex,
uint32_t  side,
const void *  data,
uint32_t  linesize,
bool  invert 
)

◆ gs_debug_marker_begin()

EXPORT void gs_debug_marker_begin ( const float  color[4],
const char *  markername 
)

◆ gs_debug_marker_begin_format()

EXPORT void gs_debug_marker_begin_format ( const float  color[4],
const char *  format,
  ... 
)

◆ gs_debug_marker_end()

EXPORT void gs_debug_marker_end ( void  )

◆ gs_depth_function()

EXPORT void gs_depth_function ( enum gs_depth_test  test)

◆ gs_destroy()

EXPORT void gs_destroy ( graphics_t graphics)

◆ gs_draw()

EXPORT void gs_draw ( enum gs_draw_mode  draw_mode,
uint32_t  start_vert,
uint32_t  num_verts 
)

◆ gs_draw_cube_backdrop()

EXPORT void gs_draw_cube_backdrop ( gs_texture_t cubetex,
const struct quat rot,
float  left,
float  right,
float  top,
float  bottom,
float  znear 
)

◆ gs_draw_sprite()

EXPORT void gs_draw_sprite ( gs_texture_t tex,
uint32_t  flip,
uint32_t  width,
uint32_t  height 
)

Draws a 2D sprite

If width or height is 0, the width or height of the texture will be used. The flip value specifies whether the texture should be flipped on the U or V axis with GS_FLIP_U and GS_FLIP_V.

◆ gs_draw_sprite_subregion()

EXPORT void gs_draw_sprite_subregion ( gs_texture_t tex,
uint32_t  flip,
uint32_t  x,
uint32_t  y,
uint32_t  cx,
uint32_t  cy 
)

◆ gs_effect_create()

EXPORT gs_effect_t* gs_effect_create ( const char *  effect_string,
const char *  filename,
char **  error_string 
)

◆ gs_effect_create_from_file()

EXPORT gs_effect_t* gs_effect_create_from_file ( const char *  file,
char **  error_string 
)

◆ gs_effect_destroy()

EXPORT void gs_effect_destroy ( gs_effect_t effect)

◆ gs_effect_get_current_technique()

EXPORT gs_technique_t* gs_effect_get_current_technique ( const gs_effect_t effect)

◆ gs_effect_get_default_val()

EXPORT void* gs_effect_get_default_val ( gs_eparam_t param)

◆ gs_effect_get_default_val_size()

EXPORT size_t gs_effect_get_default_val_size ( gs_eparam_t param)

◆ gs_effect_get_num_params()

EXPORT size_t gs_effect_get_num_params ( const gs_effect_t effect)

◆ gs_effect_get_param_by_idx()

EXPORT gs_eparam_t* gs_effect_get_param_by_idx ( const gs_effect_t effect,
size_t  param 
)

◆ gs_effect_get_param_by_name()

EXPORT gs_eparam_t* gs_effect_get_param_by_name ( const gs_effect_t effect,
const char *  name 
)

◆ gs_effect_get_param_info()

EXPORT void gs_effect_get_param_info ( const gs_eparam_t param,
struct gs_effect_param_info info 
)

◆ gs_effect_get_technique()

EXPORT gs_technique_t* gs_effect_get_technique ( const gs_effect_t effect,
const char *  name 
)

◆ gs_effect_get_val()

EXPORT void* gs_effect_get_val ( gs_eparam_t param)

◆ gs_effect_get_val_size()

EXPORT size_t gs_effect_get_val_size ( gs_eparam_t param)

◆ gs_effect_get_viewproj_matrix()

EXPORT gs_eparam_t* gs_effect_get_viewproj_matrix ( const gs_effect_t effect)

◆ gs_effect_get_world_matrix()

EXPORT gs_eparam_t* gs_effect_get_world_matrix ( const gs_effect_t effect)

◆ gs_effect_loop()

EXPORT bool gs_effect_loop ( gs_effect_t effect,
const char *  name 
)

Helper function to simplify effect usage. Use with a while loop that contains drawing functions. Automatically handles techniques, passes, and unloading.

◆ gs_effect_set_bool()

EXPORT void gs_effect_set_bool ( gs_eparam_t param,
bool  val 
)

◆ gs_effect_set_color()

EXPORT void gs_effect_set_color ( gs_eparam_t param,
uint32_t  argb 
)

◆ gs_effect_set_default()

EXPORT void gs_effect_set_default ( gs_eparam_t param)

◆ gs_effect_set_float()

EXPORT void gs_effect_set_float ( gs_eparam_t param,
float  val 
)

◆ gs_effect_set_int()

EXPORT void gs_effect_set_int ( gs_eparam_t param,
int  val 
)

◆ gs_effect_set_matrix4()

EXPORT void gs_effect_set_matrix4 ( gs_eparam_t param,
const struct matrix4 val 
)

◆ gs_effect_set_next_sampler()

EXPORT void gs_effect_set_next_sampler ( gs_eparam_t param,
gs_samplerstate_t sampler 
)

◆ gs_effect_set_texture()

EXPORT void gs_effect_set_texture ( gs_eparam_t param,
gs_texture_t val 
)

◆ gs_effect_set_val()

EXPORT void gs_effect_set_val ( gs_eparam_t param,
const void *  val,
size_t  size 
)

◆ gs_effect_set_vec2()

EXPORT void gs_effect_set_vec2 ( gs_eparam_t param,
const struct vec2 val 
)

◆ gs_effect_set_vec3()

EXPORT void gs_effect_set_vec3 ( gs_eparam_t param,
const struct vec3 val 
)

◆ gs_effect_set_vec4()

EXPORT void gs_effect_set_vec4 ( gs_eparam_t param,
const struct vec4 val 
)

◆ gs_effect_update_params()

EXPORT void gs_effect_update_params ( gs_effect_t effect)

used internally

◆ gs_enable_blending()

EXPORT void gs_enable_blending ( bool  enable)

◆ gs_enable_color()

EXPORT void gs_enable_color ( bool  red,
bool  green,
bool  blue,
bool  alpha 
)

◆ gs_enable_depth_test()

EXPORT void gs_enable_depth_test ( bool  enable)

◆ gs_enable_stencil_test()

EXPORT void gs_enable_stencil_test ( bool  enable)

◆ gs_enable_stencil_write()

EXPORT void gs_enable_stencil_write ( bool  enable)

◆ gs_end_scene()

EXPORT void gs_end_scene ( void  )

◆ gs_enter_context()

EXPORT void gs_enter_context ( graphics_t graphics)

◆ gs_enum_adapters()

EXPORT void gs_enum_adapters ( bool(*)(void *param, const char *name, uint32_t id)  callback,
void *  param 
)

◆ gs_flush()

EXPORT void gs_flush ( void  )

◆ gs_frustum()

EXPORT void gs_frustum ( float  left,
float  right,
float  top,
float  bottom,
float  znear,
float  zfar 
)

◆ gs_get_context()

EXPORT graphics_t* gs_get_context ( void  )

◆ gs_get_cull_mode()

EXPORT enum gs_cull_mode gs_get_cull_mode ( void  )

◆ gs_get_device_name()

EXPORT const char* gs_get_device_name ( void  )

◆ gs_get_device_obj()

EXPORT void* gs_get_device_obj ( void  )

◆ gs_get_device_type()

EXPORT int gs_get_device_type ( void  )

◆ gs_get_effect()

EXPORT gs_effect_t* gs_get_effect ( void  )

◆ gs_get_height()

EXPORT uint32_t gs_get_height ( void  )

◆ gs_get_input()

EXPORT input_t* gs_get_input ( void  )

◆ gs_get_pixel_shader()

EXPORT gs_shader_t* gs_get_pixel_shader ( void  )

◆ gs_get_render_target()

EXPORT gs_texture_t* gs_get_render_target ( void  )

◆ gs_get_size()

EXPORT void gs_get_size ( uint32_t *  x,
uint32_t *  y 
)

◆ gs_get_texture_type()

EXPORT enum gs_texture_type gs_get_texture_type ( const gs_texture_t texture)

◆ gs_get_vertex_shader()

EXPORT gs_shader_t* gs_get_vertex_shader ( void  )

◆ gs_get_viewport()

EXPORT void gs_get_viewport ( struct gs_rect rect)

◆ gs_get_width()

EXPORT uint32_t gs_get_width ( void  )

◆ gs_get_zstencil_target()

EXPORT gs_zstencil_t* gs_get_zstencil_target ( void  )

◆ gs_indexbuffer_create()

EXPORT gs_indexbuffer_t* gs_indexbuffer_create ( enum gs_index_type  type,
void *  indices,
size_t  num,
uint32_t  flags 
)

◆ gs_indexbuffer_destroy()

EXPORT void gs_indexbuffer_destroy ( gs_indexbuffer_t indexbuffer)

◆ gs_indexbuffer_flush()

EXPORT void gs_indexbuffer_flush ( gs_indexbuffer_t indexbuffer)

◆ gs_indexbuffer_flush_direct()

EXPORT void gs_indexbuffer_flush_direct ( gs_indexbuffer_t indexbuffer,
const void *  data 
)

◆ gs_indexbuffer_get_data()

EXPORT void* gs_indexbuffer_get_data ( const gs_indexbuffer_t indexbuffer)

◆ gs_indexbuffer_get_num_indices()

EXPORT size_t gs_indexbuffer_get_num_indices ( const gs_indexbuffer_t indexbuffer)

◆ gs_indexbuffer_get_type()

EXPORT enum gs_index_type gs_indexbuffer_get_type ( const gs_indexbuffer_t indexbuffer)

◆ gs_leave_context()

EXPORT void gs_leave_context ( void  )

◆ gs_load_default_samplerstate()

EXPORT void gs_load_default_samplerstate ( bool  b_3d,
int  unit 
)

◆ gs_load_indexbuffer()

EXPORT void gs_load_indexbuffer ( gs_indexbuffer_t indexbuffer)

◆ gs_load_pixelshader()

EXPORT void gs_load_pixelshader ( gs_shader_t pixelshader)

◆ gs_load_samplerstate()

EXPORT void gs_load_samplerstate ( gs_samplerstate_t samplerstate,
int  unit 
)

◆ gs_load_swapchain()

EXPORT void gs_load_swapchain ( gs_swapchain_t swapchain)

◆ gs_load_texture()

EXPORT void gs_load_texture ( gs_texture_t tex,
int  unit 
)

◆ gs_load_vertexbuffer()

EXPORT void gs_load_vertexbuffer ( gs_vertbuffer_t vertbuffer)

◆ gs_load_vertexshader()

EXPORT void gs_load_vertexshader ( gs_shader_t vertshader)

◆ gs_matrix_get()

EXPORT void gs_matrix_get ( struct matrix4 dst)

◆ gs_matrix_identity()

EXPORT void gs_matrix_identity ( void  )

◆ gs_matrix_mul()

EXPORT void gs_matrix_mul ( const struct matrix4 matrix)

◆ gs_matrix_pop()

EXPORT void gs_matrix_pop ( void  )

◆ gs_matrix_push()

EXPORT void gs_matrix_push ( void  )

◆ gs_matrix_rotaa()

EXPORT void gs_matrix_rotaa ( const struct axisang rot)

◆ gs_matrix_rotaa4f()

EXPORT void gs_matrix_rotaa4f ( float  x,
float  y,
float  z,
float  angle 
)

◆ gs_matrix_rotquat()

EXPORT void gs_matrix_rotquat ( const struct quat rot)

◆ gs_matrix_scale()

EXPORT void gs_matrix_scale ( const struct vec3 scale)

◆ gs_matrix_scale3f()

EXPORT void gs_matrix_scale3f ( float  x,
float  y,
float  z 
)

◆ gs_matrix_set()

EXPORT void gs_matrix_set ( const struct matrix4 matrix)

◆ gs_matrix_translate()

EXPORT void gs_matrix_translate ( const struct vec3 pos)

◆ gs_matrix_translate3f()

EXPORT void gs_matrix_translate3f ( float  x,
float  y,
float  z 
)

◆ gs_matrix_transpose()

EXPORT void gs_matrix_transpose ( void  )

◆ gs_normal3f()

EXPORT void gs_normal3f ( float  x,
float  y,
float  z 
)

◆ gs_normal3v()

EXPORT void gs_normal3v ( const struct vec3 v)

◆ gs_nv12_available()

EXPORT bool gs_nv12_available ( void  )

◆ gs_ortho()

EXPORT void gs_ortho ( float  left,
float  right,
float  top,
float  bottom,
float  znear,
float  zfar 
)

◆ gs_param_get_annotation_by_idx()

EXPORT gs_eparam_t* gs_param_get_annotation_by_idx ( const gs_eparam_t param,
size_t  annotation 
)

◆ gs_param_get_annotation_by_name()

EXPORT gs_eparam_t* gs_param_get_annotation_by_name ( const gs_eparam_t param,
const char *  name 
)

◆ gs_param_get_num_annotations()

EXPORT size_t gs_param_get_num_annotations ( const gs_eparam_t param)

◆ gs_perspective()

EXPORT void gs_perspective ( float  fovy,
float  aspect,
float  znear,
float  zfar 
)

◆ gs_pixelshader_create()

EXPORT gs_shader_t* gs_pixelshader_create ( const char *  shader,
const char *  file,
char **  error_string 
)

◆ gs_pixelshader_create_from_file()

EXPORT gs_shader_t* gs_pixelshader_create_from_file ( const char *  file,
char **  error_string 
)

◆ gs_present()

EXPORT void gs_present ( void  )

◆ gs_projection_pop()

EXPORT void gs_projection_pop ( void  )

◆ gs_projection_push()

EXPORT void gs_projection_push ( void  )

◆ gs_render_save()

EXPORT gs_vertbuffer_t* gs_render_save ( void  )

◆ gs_render_start()

EXPORT void gs_render_start ( bool  b_new)

◆ gs_render_stop()

EXPORT void gs_render_stop ( enum gs_draw_mode  mode)

◆ gs_reset_blend_state()

EXPORT void gs_reset_blend_state ( void  )

◆ gs_reset_viewport()

EXPORT void gs_reset_viewport ( void  )

sets the viewport to current swap chain size

◆ gs_resize()

EXPORT void gs_resize ( uint32_t  x,
uint32_t  y 
)

◆ gs_samplerstate_create()

EXPORT gs_samplerstate_t* gs_samplerstate_create ( const struct gs_sampler_info info)

◆ gs_samplerstate_destroy()

EXPORT void gs_samplerstate_destroy ( gs_samplerstate_t samplerstate)

◆ gs_set_2d_mode()

EXPORT void gs_set_2d_mode ( void  )

sets default screen-sized orthographic mode

◆ gs_set_3d_mode()

EXPORT void gs_set_3d_mode ( double  fovy,
double  znear,
double  zvar 
)

sets default screen-sized perspective mode

◆ gs_set_cube_render_target()

EXPORT void gs_set_cube_render_target ( gs_texture_t cubetex,
int  side,
gs_zstencil_t zstencil 
)

◆ gs_set_cull_mode()

EXPORT void gs_set_cull_mode ( enum gs_cull_mode  mode)

◆ gs_set_render_target()

EXPORT void gs_set_render_target ( gs_texture_t tex,
gs_zstencil_t zstencil 
)

◆ gs_set_scissor_rect()

EXPORT void gs_set_scissor_rect ( const struct gs_rect rect)

◆ gs_set_viewport()

EXPORT void gs_set_viewport ( int  x,
int  y,
int  width,
int  height 
)

◆ gs_shader_destroy()

EXPORT void gs_shader_destroy ( gs_shader_t shader)

◆ gs_shader_get_num_params()

EXPORT int gs_shader_get_num_params ( const gs_shader_t shader)

◆ gs_shader_get_param_by_idx()

EXPORT gs_sparam_t* gs_shader_get_param_by_idx ( gs_shader_t shader,
uint32_t  param 
)

◆ gs_shader_get_param_by_name()

EXPORT gs_sparam_t* gs_shader_get_param_by_name ( gs_shader_t shader,
const char *  name 
)

◆ gs_shader_get_param_info()

EXPORT void gs_shader_get_param_info ( const gs_sparam_t param,
struct gs_shader_param_info info 
)

◆ gs_shader_get_viewproj_matrix()

EXPORT gs_sparam_t* gs_shader_get_viewproj_matrix ( const gs_shader_t shader)

◆ gs_shader_get_world_matrix()

EXPORT gs_sparam_t* gs_shader_get_world_matrix ( const gs_shader_t shader)

◆ gs_shader_set_bool()

EXPORT void gs_shader_set_bool ( gs_sparam_t param,
bool  val 
)

◆ gs_shader_set_default()

EXPORT void gs_shader_set_default ( gs_sparam_t param)

◆ gs_shader_set_float()

EXPORT void gs_shader_set_float ( gs_sparam_t param,
float  val 
)

◆ gs_shader_set_int()

EXPORT void gs_shader_set_int ( gs_sparam_t param,
int  val 
)

◆ gs_shader_set_matrix3()

EXPORT void gs_shader_set_matrix3 ( gs_sparam_t param,
const struct matrix3 val 
)

◆ gs_shader_set_matrix4()

EXPORT void gs_shader_set_matrix4 ( gs_sparam_t param,
const struct matrix4 val 
)

◆ gs_shader_set_next_sampler()

EXPORT void gs_shader_set_next_sampler ( gs_sparam_t param,
gs_samplerstate_t sampler 
)

◆ gs_shader_set_texture()

EXPORT void gs_shader_set_texture ( gs_sparam_t param,
gs_texture_t val 
)

◆ gs_shader_set_val()

EXPORT void gs_shader_set_val ( gs_sparam_t param,
const void *  val,
size_t  size 
)

◆ gs_shader_set_vec2()

EXPORT void gs_shader_set_vec2 ( gs_sparam_t param,
const struct vec2 val 
)

◆ gs_shader_set_vec3()

EXPORT void gs_shader_set_vec3 ( gs_sparam_t param,
const struct vec3 val 
)

◆ gs_shader_set_vec4()

EXPORT void gs_shader_set_vec4 ( gs_sparam_t param,
const struct vec4 val 
)

◆ gs_stage_texture()

EXPORT void gs_stage_texture ( gs_stagesurf_t dst,
gs_texture_t src 
)

◆ gs_stagesurface_create()

EXPORT gs_stagesurf_t* gs_stagesurface_create ( uint32_t  width,
uint32_t  height,
enum gs_color_format  color_format 
)

◆ gs_stagesurface_destroy()

EXPORT void gs_stagesurface_destroy ( gs_stagesurf_t stagesurf)

◆ gs_stagesurface_get_color_format()

EXPORT enum gs_color_format gs_stagesurface_get_color_format ( const gs_stagesurf_t stagesurf)

◆ gs_stagesurface_get_height()

EXPORT uint32_t gs_stagesurface_get_height ( const gs_stagesurf_t stagesurf)

◆ gs_stagesurface_get_width()

EXPORT uint32_t gs_stagesurface_get_width ( const gs_stagesurf_t stagesurf)

◆ gs_stagesurface_map()

EXPORT bool gs_stagesurface_map ( gs_stagesurf_t stagesurf,
uint8_t **  data,
uint32_t *  linesize 
)

◆ gs_stagesurface_unmap()

EXPORT void gs_stagesurface_unmap ( gs_stagesurf_t stagesurf)

◆ gs_stencil_function()

EXPORT void gs_stencil_function ( enum gs_stencil_side  side,
enum gs_depth_test  test 
)

◆ gs_stencil_op()

EXPORT void gs_stencil_op ( enum gs_stencil_side  side,
enum gs_stencil_op_type  fail,
enum gs_stencil_op_type  zfail,
enum gs_stencil_op_type  zpass 
)

◆ gs_swapchain_create()

EXPORT gs_swapchain_t* gs_swapchain_create ( const struct gs_init_data data)

◆ gs_swapchain_destroy()

EXPORT void gs_swapchain_destroy ( gs_swapchain_t swapchain)

◆ gs_technique_begin()

EXPORT size_t gs_technique_begin ( gs_technique_t technique)

◆ gs_technique_begin_pass()

EXPORT bool gs_technique_begin_pass ( gs_technique_t technique,
size_t  pass 
)

◆ gs_technique_begin_pass_by_name()

EXPORT bool gs_technique_begin_pass_by_name ( gs_technique_t technique,
const char *  name 
)

◆ gs_technique_end()

EXPORT void gs_technique_end ( gs_technique_t technique)

◆ gs_technique_end_pass()

EXPORT void gs_technique_end_pass ( gs_technique_t technique)

◆ gs_technique_get_pass_by_idx()

EXPORT gs_epass_t* gs_technique_get_pass_by_idx ( const gs_technique_t technique,
size_t  pass 
)

◆ gs_technique_get_pass_by_name()

EXPORT gs_epass_t* gs_technique_get_pass_by_name ( const gs_technique_t technique,
const char *  name 
)

◆ gs_texcoord()

EXPORT void gs_texcoord ( float  x,
float  y,
int  unit 
)

◆ gs_texcoord2v()

EXPORT void gs_texcoord2v ( const struct vec2 v,
int  unit 
)

◆ gs_texrender_begin()

EXPORT bool gs_texrender_begin ( gs_texrender_t texrender,
uint32_t  cx,
uint32_t  cy 
)

◆ gs_texrender_create()

EXPORT gs_texrender_t* gs_texrender_create ( enum gs_color_format  format,
enum gs_zstencil_format  zsformat 
)

◆ gs_texrender_destroy()

EXPORT void gs_texrender_destroy ( gs_texrender_t texrender)

◆ gs_texrender_end()

EXPORT void gs_texrender_end ( gs_texrender_t texrender)

◆ gs_texrender_get_texture()

EXPORT gs_texture_t* gs_texrender_get_texture ( const gs_texrender_t texrender)

◆ gs_texrender_reset()

EXPORT void gs_texrender_reset ( gs_texrender_t texrender)

◆ gs_texture_create()

EXPORT gs_texture_t* gs_texture_create ( uint32_t  width,
uint32_t  height,
enum gs_color_format  color_format,
uint32_t  levels,
const uint8_t **  data,
uint32_t  flags 
)

◆ gs_texture_create_from_file()

EXPORT gs_texture_t* gs_texture_create_from_file ( const char *  file)

◆ gs_texture_destroy()

EXPORT void gs_texture_destroy ( gs_texture_t tex)

◆ gs_texture_get_color_format()

EXPORT enum gs_color_format gs_texture_get_color_format ( const gs_texture_t tex)

◆ gs_texture_get_height()

EXPORT uint32_t gs_texture_get_height ( const gs_texture_t tex)

◆ gs_texture_get_obj()

EXPORT void* gs_texture_get_obj ( gs_texture_t tex)

Gets a pointer to the context-specific object associated with the texture. For example, for GL, this is a GLuint*. For D3D11, ID3D11Texture2D*.

◆ gs_texture_get_width()

EXPORT uint32_t gs_texture_get_width ( const gs_texture_t tex)

◆ gs_texture_is_rect()

EXPORT bool gs_texture_is_rect ( const gs_texture_t tex)

special-case function (GL only) - specifies whether the texture is a GL_TEXTURE_RECTANGLE type, which doesn't use normalized texture coordinates, doesn't support mipmapping, and requires address clamping

◆ gs_texture_map()

EXPORT bool gs_texture_map ( gs_texture_t tex,
uint8_t **  ptr,
uint32_t *  linesize 
)

◆ gs_texture_set_image()

EXPORT void gs_texture_set_image ( gs_texture_t tex,
const uint8_t *  data,
uint32_t  linesize,
bool  invert 
)

◆ gs_texture_unmap()

EXPORT void gs_texture_unmap ( gs_texture_t tex)

◆ gs_timer_begin()

EXPORT void gs_timer_begin ( gs_timer_t timer)

◆ gs_timer_create()

EXPORT gs_timer_t* gs_timer_create ( )

◆ gs_timer_destroy()

EXPORT void gs_timer_destroy ( gs_timer_t timer)

◆ gs_timer_end()

EXPORT void gs_timer_end ( gs_timer_t timer)

◆ gs_timer_get_data()

EXPORT bool gs_timer_get_data ( gs_timer_t timer,
uint64_t *  ticks 
)

◆ gs_timer_range_begin()

EXPORT void gs_timer_range_begin ( gs_timer_range_t range)

◆ gs_timer_range_create()

EXPORT gs_timer_range_t* gs_timer_range_create ( )

◆ gs_timer_range_destroy()

EXPORT void gs_timer_range_destroy ( gs_timer_range_t timer)

◆ gs_timer_range_end()

EXPORT void gs_timer_range_end ( gs_timer_range_t range)

◆ gs_timer_range_get_data()

EXPORT bool gs_timer_range_get_data ( gs_timer_range_t range,
bool *  disjoint,
uint64_t *  frequency 
)

◆ gs_vertex2f()

EXPORT void gs_vertex2f ( float  x,
float  y 
)

◆ gs_vertex2v()

EXPORT void gs_vertex2v ( const struct vec2 v)

◆ gs_vertex3f()

EXPORT void gs_vertex3f ( float  x,
float  y,
float  z 
)

◆ gs_vertex3v()

EXPORT void gs_vertex3v ( const struct vec3 v)

◆ gs_vertexbuffer_create()

EXPORT gs_vertbuffer_t* gs_vertexbuffer_create ( struct gs_vb_data data,
uint32_t  flags 
)

◆ gs_vertexbuffer_destroy()

EXPORT void gs_vertexbuffer_destroy ( gs_vertbuffer_t vertbuffer)

◆ gs_vertexbuffer_flush()

EXPORT void gs_vertexbuffer_flush ( gs_vertbuffer_t vertbuffer)

◆ gs_vertexbuffer_flush_direct()

EXPORT void gs_vertexbuffer_flush_direct ( gs_vertbuffer_t vertbuffer,
const struct gs_vb_data data 
)

◆ gs_vertexbuffer_get_data()

EXPORT struct gs_vb_data* gs_vertexbuffer_get_data ( const gs_vertbuffer_t vertbuffer)

◆ gs_vertexshader_create()

EXPORT gs_shader_t* gs_vertexshader_create ( const char *  shader,
const char *  file,
char **  error_string 
)

◆ gs_vertexshader_create_from_file()

EXPORT gs_shader_t* gs_vertexshader_create_from_file ( const char *  file,
char **  error_string 
)

◆ gs_viewport_pop()

EXPORT void gs_viewport_pop ( void  )

◆ gs_viewport_push()

EXPORT void gs_viewport_push ( void  )

◆ gs_voltexture_create()

EXPORT gs_texture_t* gs_voltexture_create ( uint32_t  width,
uint32_t  height,
uint32_t  depth,
enum gs_color_format  color_format,
uint32_t  levels,
const uint8_t **  data,
uint32_t  flags 
)

◆ gs_voltexture_destroy()

EXPORT void gs_voltexture_destroy ( gs_texture_t voltex)

◆ gs_voltexture_get_color_format()

EXPORT enum gs_color_format gs_voltexture_get_color_format ( const gs_texture_t voltex)

◆ gs_voltexture_get_depth()

EXPORT uint32_t gs_voltexture_get_depth ( const gs_texture_t voltex)

◆ gs_voltexture_get_height()

EXPORT uint32_t gs_voltexture_get_height ( const gs_texture_t voltex)

◆ gs_voltexture_get_width()

EXPORT uint32_t gs_voltexture_get_width ( const gs_texture_t voltex)

◆ gs_zstencil_create()

EXPORT gs_zstencil_t* gs_zstencil_create ( uint32_t  width,
uint32_t  height,
enum gs_zstencil_format  format 
)

◆ gs_zstencil_destroy()

EXPORT void gs_zstencil_destroy ( gs_zstencil_t zstencil)