(API Change) Remove pointers from all typedefs
Typedef pointers are unsafe. If you do: typedef struct bla *bla_t; then you cannot use it as a constant, such as: const bla_t, because that constant will be to the pointer itself rather than to the underlying data. I admit this was a fundamental mistake that must be corrected. All typedefs that were pointer types will now have their pointers removed from the type itself, and the pointers will be used when they are actually used as variables/parameters/returns instead. This does not break ABI though, which is pretty nice.
This commit is contained in:
@@ -26,118 +26,121 @@ extern "C" {
|
||||
EXPORT const char *device_get_name(void);
|
||||
EXPORT int device_get_type(void);
|
||||
EXPORT const char *device_preprocessor_name(void);
|
||||
EXPORT int device_create(gs_device_t *device, struct gs_init_data *data);
|
||||
EXPORT void device_destroy(gs_device_t device);
|
||||
EXPORT void device_enter_context(gs_device_t device);
|
||||
EXPORT void device_leave_context(gs_device_t device);
|
||||
EXPORT gs_swapchain_t device_swapchain_create(gs_device_t device,
|
||||
EXPORT int device_create(gs_device_t **device, struct gs_init_data *data);
|
||||
EXPORT void device_destroy(gs_device_t *device);
|
||||
EXPORT void device_enter_context(gs_device_t *device);
|
||||
EXPORT void device_leave_context(gs_device_t *device);
|
||||
EXPORT gs_swapchain_t *device_swapchain_create(gs_device_t *device,
|
||||
struct gs_init_data *data);
|
||||
EXPORT void device_resize(gs_device_t device, uint32_t x, uint32_t y);
|
||||
EXPORT void device_get_size(gs_device_t device, uint32_t *x, uint32_t *y);
|
||||
EXPORT uint32_t device_get_width(gs_device_t device);
|
||||
EXPORT uint32_t device_get_height(gs_device_t device);
|
||||
EXPORT gs_texture_t device_texture_create(gs_device_t device, uint32_t width,
|
||||
EXPORT void device_resize(gs_device_t *device, uint32_t x, uint32_t y);
|
||||
EXPORT void device_get_size(gs_device_t *device, uint32_t *x, uint32_t *y);
|
||||
EXPORT uint32_t device_get_width(gs_device_t *device);
|
||||
EXPORT uint32_t device_get_height(gs_device_t *device);
|
||||
EXPORT gs_texture_t *device_texture_create(gs_device_t *device, 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_t device_cubetexture_create(gs_device_t device, uint32_t size,
|
||||
EXPORT gs_texture_t *device_cubetexture_create(gs_device_t *device,
|
||||
uint32_t size, enum gs_color_format color_format,
|
||||
uint32_t levels, const uint8_t **data, uint32_t flags);
|
||||
EXPORT gs_texture_t *device_voltexture_create(gs_device_t *device,
|
||||
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_texture_t device_voltexture_create(gs_device_t device, 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_t device_zstencil_create(gs_device_t device, uint32_t width,
|
||||
uint32_t height, enum gs_zstencil_format format);
|
||||
EXPORT gs_stagesurf_t device_stagesurface_create(gs_device_t device,
|
||||
EXPORT gs_zstencil_t *device_zstencil_create(gs_device_t *device,
|
||||
uint32_t width, uint32_t height,
|
||||
enum gs_zstencil_format format);
|
||||
EXPORT gs_stagesurf_t *device_stagesurface_create(gs_device_t *device,
|
||||
uint32_t width, uint32_t height,
|
||||
enum gs_color_format color_format);
|
||||
EXPORT gs_samplerstate_t device_samplerstate_create(gs_device_t device,
|
||||
EXPORT gs_samplerstate_t *device_samplerstate_create(gs_device_t *device,
|
||||
struct gs_sampler_info *info);
|
||||
EXPORT gs_shader_t device_vertexshader_create(gs_device_t device,
|
||||
EXPORT gs_shader_t *device_vertexshader_create(gs_device_t *device,
|
||||
const char *shader, const char *file,
|
||||
char **error_string);
|
||||
EXPORT gs_shader_t device_pixelshader_create(gs_device_t device,
|
||||
EXPORT gs_shader_t *device_pixelshader_create(gs_device_t *device,
|
||||
const char *shader, const char *file,
|
||||
char **error_string);
|
||||
EXPORT gs_vertbuffer_t device_vertexbuffer_create(gs_device_t device,
|
||||
EXPORT gs_vertbuffer_t *device_vertexbuffer_create(gs_device_t *device,
|
||||
struct gs_vb_data *data, uint32_t flags);
|
||||
EXPORT gs_indexbuffer_t device_indexbuffer_create(gs_device_t device,
|
||||
EXPORT gs_indexbuffer_t *device_indexbuffer_create(gs_device_t *device,
|
||||
enum gs_index_type type, void *indices, size_t num,
|
||||
uint32_t flags);
|
||||
EXPORT enum gs_texture_type device_get_texture_type(gs_texture_t texture);
|
||||
EXPORT void device_load_vertexbuffer(gs_device_t device,
|
||||
gs_vertbuffer_t vertbuffer);
|
||||
EXPORT void device_load_indexbuffer(gs_device_t device,
|
||||
gs_indexbuffer_t indexbuffer);
|
||||
EXPORT void device_load_texture(gs_device_t device, gs_texture_t tex, int unit);
|
||||
EXPORT void device_load_samplerstate(gs_device_t device,
|
||||
gs_samplerstate_t samplerstate, int unit);
|
||||
EXPORT void device_load_vertexshader(gs_device_t device,
|
||||
gs_shader_t vertshader);
|
||||
EXPORT void device_load_pixelshader(gs_device_t device,
|
||||
gs_shader_t pixelshader);
|
||||
EXPORT void device_load_default_samplerstate(gs_device_t device, bool b_3d,
|
||||
EXPORT enum gs_texture_type device_get_texture_type(gs_texture_t *texture);
|
||||
EXPORT void device_load_vertexbuffer(gs_device_t *device,
|
||||
gs_vertbuffer_t *vertbuffer);
|
||||
EXPORT void device_load_indexbuffer(gs_device_t *device,
|
||||
gs_indexbuffer_t *indexbuffer);
|
||||
EXPORT void device_load_texture(gs_device_t *device, gs_texture_t *tex,
|
||||
int unit);
|
||||
EXPORT gs_shader_t device_get_vertex_shader(gs_device_t device);
|
||||
EXPORT gs_shader_t device_get_pixel_shader(gs_device_t device);
|
||||
EXPORT gs_texture_t device_get_render_target(gs_device_t device);
|
||||
EXPORT gs_zstencil_t device_get_zstencil_target(gs_device_t device);
|
||||
EXPORT void device_set_render_target(gs_device_t device, gs_texture_t tex,
|
||||
gs_zstencil_t zstencil);
|
||||
EXPORT void device_set_cube_render_target(gs_device_t device,
|
||||
gs_texture_t cubetex,
|
||||
int side, gs_zstencil_t zstencil);
|
||||
EXPORT void device_copy_texture(gs_device_t device, gs_texture_t dst,
|
||||
gs_texture_t src);
|
||||
EXPORT void device_copy_texture_region(gs_device_t device,
|
||||
gs_texture_t dst, uint32_t dst_x, uint32_t dst_y,
|
||||
gs_texture_t src, uint32_t src_x, uint32_t src_y,
|
||||
EXPORT void device_load_samplerstate(gs_device_t *device,
|
||||
gs_samplerstate_t *samplerstate, int unit);
|
||||
EXPORT void device_load_vertexshader(gs_device_t *device,
|
||||
gs_shader_t *vertshader);
|
||||
EXPORT void device_load_pixelshader(gs_device_t *device,
|
||||
gs_shader_t *pixelshader);
|
||||
EXPORT void device_load_default_samplerstate(gs_device_t *device, bool b_3d,
|
||||
int unit);
|
||||
EXPORT gs_shader_t *device_get_vertex_shader(gs_device_t *device);
|
||||
EXPORT gs_shader_t *device_get_pixel_shader(gs_device_t *device);
|
||||
EXPORT gs_texture_t *device_get_render_target(gs_device_t *device);
|
||||
EXPORT gs_zstencil_t *device_get_zstencil_target(gs_device_t *device);
|
||||
EXPORT void device_set_render_target(gs_device_t *device, gs_texture_t *tex,
|
||||
gs_zstencil_t *zstencil);
|
||||
EXPORT void device_set_cube_render_target(gs_device_t *device,
|
||||
gs_texture_t *cubetex,
|
||||
int side, gs_zstencil_t *zstencil);
|
||||
EXPORT void device_copy_texture(gs_device_t *device, gs_texture_t *dst,
|
||||
gs_texture_t *src);
|
||||
EXPORT void device_copy_texture_region(gs_device_t *device,
|
||||
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 device_stage_texture(gs_device_t device, gs_stagesurf_t dst,
|
||||
gs_texture_t src);
|
||||
EXPORT void device_begin_scene(gs_device_t device);
|
||||
EXPORT void device_draw(gs_device_t device, enum gs_draw_mode draw_mode,
|
||||
EXPORT void device_stage_texture(gs_device_t *device, gs_stagesurf_t *dst,
|
||||
gs_texture_t *src);
|
||||
EXPORT void device_begin_scene(gs_device_t *device);
|
||||
EXPORT void device_draw(gs_device_t *device, enum gs_draw_mode draw_mode,
|
||||
uint32_t start_vert, uint32_t num_verts);
|
||||
EXPORT void device_end_scene(gs_device_t device);
|
||||
EXPORT void device_load_swapchain(gs_device_t device, gs_swapchain_t swapchain);
|
||||
EXPORT void device_clear(gs_device_t device, uint32_t clear_flags,
|
||||
EXPORT void device_end_scene(gs_device_t *device);
|
||||
EXPORT void device_load_swapchain(gs_device_t *device,
|
||||
gs_swapchain_t *swapchain);
|
||||
EXPORT void device_clear(gs_device_t *device, uint32_t clear_flags,
|
||||
struct vec4 *color, float depth, uint8_t stencil);
|
||||
EXPORT void device_present(gs_device_t device);
|
||||
EXPORT void device_flush(gs_device_t device);
|
||||
EXPORT void device_set_cull_mode(gs_device_t device, enum gs_cull_mode mode);
|
||||
EXPORT enum gs_cull_mode device_get_cull_mode(gs_device_t device);
|
||||
EXPORT void device_enable_blending(gs_device_t device, bool enable);
|
||||
EXPORT void device_enable_depth_test(gs_device_t device, bool enable);
|
||||
EXPORT void device_enable_stencil_test(gs_device_t device, bool enable);
|
||||
EXPORT void device_enable_stencil_write(gs_device_t device, bool enable);
|
||||
EXPORT void device_enable_color(gs_device_t device, bool red, bool green,
|
||||
EXPORT void device_present(gs_device_t *device);
|
||||
EXPORT void device_flush(gs_device_t *device);
|
||||
EXPORT void device_set_cull_mode(gs_device_t *device, enum gs_cull_mode mode);
|
||||
EXPORT enum gs_cull_mode device_get_cull_mode(gs_device_t *device);
|
||||
EXPORT void device_enable_blending(gs_device_t *device, bool enable);
|
||||
EXPORT void device_enable_depth_test(gs_device_t *device, bool enable);
|
||||
EXPORT void device_enable_stencil_test(gs_device_t *device, bool enable);
|
||||
EXPORT void device_enable_stencil_write(gs_device_t *device, bool enable);
|
||||
EXPORT void device_enable_color(gs_device_t *device, bool red, bool green,
|
||||
bool blue, bool alpha);
|
||||
EXPORT void device_blend_function(gs_device_t device, enum gs_blend_type src,
|
||||
EXPORT void device_blend_function(gs_device_t *device, enum gs_blend_type src,
|
||||
enum gs_blend_type dest);
|
||||
EXPORT void device_depth_function(gs_device_t device, enum gs_depth_test test);
|
||||
EXPORT void device_stencil_function(gs_device_t device,
|
||||
EXPORT void device_depth_function(gs_device_t *device, enum gs_depth_test test);
|
||||
EXPORT void device_stencil_function(gs_device_t *device,
|
||||
enum gs_stencil_side side, enum gs_depth_test test);
|
||||
EXPORT void device_stencil_op(gs_device_t device, enum gs_stencil_side side,
|
||||
EXPORT void device_stencil_op(gs_device_t *device, 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 device_enable_fullscreen(gs_device_t device, bool enable);
|
||||
EXPORT int device_fullscreen_enabled(gs_device_t device);
|
||||
EXPORT void device_setdisplaymode(gs_device_t device,
|
||||
EXPORT void device_enable_fullscreen(gs_device_t *device, bool enable);
|
||||
EXPORT int device_fullscreen_enabled(gs_device_t *device);
|
||||
EXPORT void device_setdisplaymode(gs_device_t *device,
|
||||
const struct gs_display_mode *mode);
|
||||
EXPORT void device_getdisplaymode(gs_device_t device,
|
||||
EXPORT void device_getdisplaymode(gs_device_t *device,
|
||||
struct gs_display_mode *mode);
|
||||
EXPORT void device_setcolorramp(gs_device_t device, float gamma,
|
||||
EXPORT void device_setcolorramp(gs_device_t *device, float gamma,
|
||||
float brightness, float contrast);
|
||||
EXPORT void device_set_viewport(gs_device_t device, int x, int y, int width,
|
||||
EXPORT void device_set_viewport(gs_device_t *device, int x, int y, int width,
|
||||
int height);
|
||||
EXPORT void device_get_viewport(gs_device_t device, struct gs_rect *rect);
|
||||
EXPORT void device_set_scissor_rect(gs_device_t device, struct gs_rect *rect);
|
||||
EXPORT void device_ortho(gs_device_t device, float left, float right,
|
||||
EXPORT void device_get_viewport(gs_device_t *device, struct gs_rect *rect);
|
||||
EXPORT void device_set_scissor_rect(gs_device_t *device, struct gs_rect *rect);
|
||||
EXPORT void device_ortho(gs_device_t *device, float left, float right,
|
||||
float top, float bottom, float znear, float zfar);
|
||||
EXPORT void device_frustum(gs_device_t device, float left, float right,
|
||||
EXPORT void device_frustum(gs_device_t *device, float left, float right,
|
||||
float top, float bottom, float znear, float zfar);
|
||||
EXPORT void device_projection_push(gs_device_t device);
|
||||
EXPORT void device_projection_pop(gs_device_t device);
|
||||
EXPORT void device_projection_push(gs_device_t *device);
|
||||
EXPORT void device_projection_pop(gs_device_t *device);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Reference in New Issue
Block a user