65 enum asc_texture_scale_mode { |
65 enum asc_texture_scale_mode { |
66 ASC_TEXTURE_SCALE_FIT, |
66 ASC_TEXTURE_SCALE_FIT, |
67 ASC_TEXTURE_SCALE_REPEAT |
67 ASC_TEXTURE_SCALE_REPEAT |
68 }; |
68 }; |
69 |
69 |
70 __attribute__((__nonnull__)) |
|
71 void asc_texture_init( |
70 void asc_texture_init( |
72 AscTexture *tex, |
71 AscTexture *tex, |
73 unsigned count, |
72 unsigned count, |
74 enum asc_texture_target target, |
73 enum asc_texture_target target, |
75 enum asc_texture_min_filter min_filter, |
74 enum asc_texture_min_filter min_filter, |
76 enum asc_texture_mag_filter mag_filter |
75 enum asc_texture_mag_filter mag_filter |
77 ); |
76 ); |
78 |
77 |
79 __attribute__((__nonnull__)) |
|
80 void asc_texture_destroy(AscTexture *tex, unsigned count); |
78 void asc_texture_destroy(AscTexture *tex, unsigned count); |
81 |
79 |
82 #define asc_texture_init_rectangle(tex, count) \ |
80 #define asc_texture_init_rectangle(tex, count) \ |
83 asc_texture_init(tex, count, ASC_TEXTURE_RECTANGLE, \ |
81 asc_texture_init(tex, count, ASC_TEXTURE_RECTANGLE, \ |
84 ASC_TEXTURE_MIN_FILTER_NEAREST, ASC_TEXTURE_MAG_FILTER_NEAREST) |
82 ASC_TEXTURE_MIN_FILTER_NEAREST, ASC_TEXTURE_MAG_FILTER_NEAREST) |
85 |
83 |
86 #define asc_texture_init_2d(tex, count) \ |
84 #define asc_texture_init_2d(tex, count) \ |
87 asc_texture_init(tex, count, ASC_TEXTURE_2D, \ |
85 asc_texture_init(tex, count, ASC_TEXTURE_2D, \ |
88 ASC_TEXTURE_MIN_FILTER_LINEAR, ASC_TEXTURE_MAG_FILTER_LINEAR) |
86 ASC_TEXTURE_MIN_FILTER_LINEAR, ASC_TEXTURE_MAG_FILTER_LINEAR) |
89 |
87 |
90 __attribute__((__nonnull__)) |
|
91 void asc_texture_bind(AscTexture const *tex, int uniform_location, int unit); |
88 void asc_texture_bind(AscTexture const *tex, int uniform_location, int unit); |
92 |
89 |
93 __attribute__((__nonnull__)) |
|
94 void asc_texture_from_surface(AscTexture *tex, SDL_Surface const *surface); |
90 void asc_texture_from_surface(AscTexture *tex, SDL_Surface const *surface); |
95 |
91 |
96 __attribute__((__nonnull__)) |
|
97 void asc_texture_from_file(AscTexture *tex, const char *name); |
92 void asc_texture_from_file(AscTexture *tex, const char *name); |
98 |
93 |
99 |
94 |
100 /** |
95 /** |
101 * Calculates UV scaling factors depending on texture and surface dimensions. |
96 * Calculates UV scaling factors depending on texture and surface dimensions. |