This commit is contained in:
luboslenco
2025-02-09 18:57:40 +01:00
parent 7bbc063fac
commit 4fdd10119d
6 changed files with 4 additions and 127 deletions
@@ -554,10 +554,6 @@ void kinc_g4_set_texture_addressing(kinc_g4_texture_unit_t unit, kinc_g4_texture
}
}
void kinc_g4_set_texture3d_addressing(kinc_g4_texture_unit_t unit, kinc_g4_texture_direction_t dir, kinc_g4_texture_addressing_t addressing) {
kinc_g4_set_texture_addressing(unit, dir, addressing);
}
void kinc_g4_set_texture_magnification_filter(kinc_g4_texture_unit_t texunit, kinc_g4_texture_filter_t filter) {
for (int i = 0; i < KINC_G5_SHADER_TYPE_COUNT; ++i) {
if (texunit.stages[i] >= 0) {
@@ -566,10 +562,6 @@ void kinc_g4_set_texture_magnification_filter(kinc_g4_texture_unit_t texunit, ki
}
}
void kinc_g4_set_texture3d_magnification_filter(kinc_g4_texture_unit_t texunit, kinc_g4_texture_filter_t filter) {
kinc_g4_set_texture_magnification_filter(texunit, filter);
}
void kinc_g4_set_texture_minification_filter(kinc_g4_texture_unit_t texunit, kinc_g4_texture_filter_t filter) {
for (int i = 0; i < KINC_G5_SHADER_TYPE_COUNT; ++i) {
if (texunit.stages[i] >= 0) {
@@ -578,10 +570,6 @@ void kinc_g4_set_texture_minification_filter(kinc_g4_texture_unit_t texunit, kin
}
}
void kinc_g4_set_texture3d_minification_filter(kinc_g4_texture_unit_t texunit, kinc_g4_texture_filter_t filter) {
kinc_g4_set_texture_minification_filter(texunit, filter);
}
void kinc_g4_set_texture_mipmap_filter(kinc_g4_texture_unit_t texunit, kinc_g4_mipmap_filter_t filter) {
for (int i = 0; i < KINC_G5_SHADER_TYPE_COUNT; ++i) {
if (texunit.stages[i] >= 0) {
@@ -590,10 +578,6 @@ void kinc_g4_set_texture_mipmap_filter(kinc_g4_texture_unit_t texunit, kinc_g4_m
}
}
void kinc_g4_set_texture3d_mipmap_filter(kinc_g4_texture_unit_t texunit, kinc_g4_mipmap_filter_t filter) {
kinc_g4_set_texture_mipmap_filter(texunit, filter);
}
void kinc_g4_set_texture_compare_mode(kinc_g4_texture_unit_t unit, bool enabled) {
for (int i = 0; i < KINC_G5_SHADER_TYPE_COUNT; ++i) {
if (unit.stages[i] >= 0) {
@@ -718,30 +702,6 @@ void kinc_g4_set_texture(kinc_g4_texture_unit_t unit, kinc_g4_texture_t *texture
kinc_g5_command_list_set_texture(&commandList, g5_unit, &texture->impl._texture);
}
void kinc_g4_set_image_texture(kinc_g4_texture_unit_t unit, kinc_g4_texture_t *texture) {
assert(KINC_G4_SHADER_TYPE_COUNT == KINC_G5_SHADER_TYPE_COUNT);
kinc_g5_texture_unit_t g5_unit;
memcpy(&g5_unit.stages[0], &unit.stages[0], KINC_G5_SHADER_TYPE_COUNT * sizeof(int));
bool found = false;
for (int i = 0; i < current_state.texture_count; ++i) {
if (kinc_g5_texture_unit_equals(&current_state.texture_units[i], &g5_unit)) {
current_state.textures[i] = &texture->impl._texture;
current_state.texture_units[i] = g5_unit;
found = true;
break;
}
}
if (!found) {
assert(current_state.texture_count < MAX_TEXTURES);
current_state.textures[current_state.texture_count] = &texture->impl._texture;
current_state.texture_units[current_state.texture_count] = g5_unit;
current_state.texture_count += 1;
}
kinc_g5_command_list_set_image_texture(&commandList, g5_unit, &texture->impl._texture);
}
int kinc_g4_max_bound_textures(void) {
return kinc_g5_max_bound_textures();
}
+2 -15
View File
@@ -1700,10 +1700,6 @@ void iron_g4_set_texture_depth(kinc_g4_texture_unit_t *unit, kinc_g4_render_targ
kinc_g4_render_target_use_depth_as_texture(render_target, *unit);
}
void iron_g4_set_image_texture(kinc_g4_texture_unit_t *unit, kinc_g4_texture_t *texture) {
kinc_g4_set_image_texture(*unit, texture);
}
void iron_g4_set_texture_parameters(kinc_g4_texture_unit_t *unit, i32 u_addr, i32 v_addr, i32 min_filter, i32 mag_filter, i32 mip_filter) {
kinc_g4_set_texture_addressing(*unit, KINC_G4_TEXTURE_DIRECTION_U, (kinc_g4_texture_addressing_t)u_addr);
kinc_g4_set_texture_addressing(*unit, KINC_G4_TEXTURE_DIRECTION_V, (kinc_g4_texture_addressing_t)v_addr);
@@ -1712,15 +1708,6 @@ void iron_g4_set_texture_parameters(kinc_g4_texture_unit_t *unit, i32 u_addr, i3
kinc_g4_set_texture_mipmap_filter(*unit, (kinc_g4_mipmap_filter_t)mip_filter);
}
void iron_g4_set_texture3d_parameters(kinc_g4_texture_unit_t *unit, i32 u_addr, i32 v_addr, i32 w_addr, i32 min_filter, i32 mag_filter, i32 mip_filter) {
kinc_g4_set_texture3d_addressing(*unit, KINC_G4_TEXTURE_DIRECTION_U, (kinc_g4_texture_addressing_t)u_addr);
kinc_g4_set_texture3d_addressing(*unit, KINC_G4_TEXTURE_DIRECTION_V, (kinc_g4_texture_addressing_t)v_addr);
kinc_g4_set_texture3d_addressing(*unit, KINC_G4_TEXTURE_DIRECTION_W, (kinc_g4_texture_addressing_t)w_addr);
kinc_g4_set_texture3d_minification_filter(*unit, (kinc_g4_texture_filter_t)min_filter);
kinc_g4_set_texture3d_magnification_filter(*unit, (kinc_g4_texture_filter_t)mag_filter);
kinc_g4_set_texture3d_mipmap_filter(*unit, (kinc_g4_mipmap_filter_t)mip_filter);
}
void iron_g4_set_bool(kinc_g4_constant_location_t *location, bool value) {
kinc_g4_set_bool(*location, value != 0);
}
@@ -1979,7 +1966,7 @@ int _format_byte_size(kinc_image_format_t format) {
buffer_t *iron_g4_get_texture_pixels(kinc_image_t *image) {
uint8_t *data = kinc_image_get_pixels(image);
int byte_length = _format_byte_size(image->format) * image->width * image->height * image->depth;
int byte_length = _format_byte_size(image->format) * image->width * image->height;
buffer_t *buffer = malloc(sizeof(buffer_t));
buffer->buffer = data;
buffer->length = byte_length;
@@ -2004,7 +1991,7 @@ void iron_g4_get_render_target_pixels(kinc_g4_render_target_t *rt, buffer_t *dat
buffer_t *iron_g4_lock_texture(kinc_g4_texture_t *texture, i32 level) {
uint8_t *tex = kinc_g4_texture_lock(texture);
int stride = kinc_g4_texture_stride(texture);
int byte_length = stride * texture->tex_height * texture->tex_depth;
int byte_length = stride * texture->tex_height;
buffer_t *buffer = malloc(sizeof(buffer_t));
buffer->buffer = tex;
buffer->length = byte_length;
@@ -171,8 +171,6 @@ void kinc_g4_draw_indexed_vertices_instanced_from_to(int instanceCount, int star
void kinc_g4_set_texture_addressing(kinc_g4_texture_unit_t unit, kinc_g4_texture_direction_t dir, kinc_g4_texture_addressing_t addressing);
void kinc_g4_set_texture3d_addressing(kinc_g4_texture_unit_t unit, kinc_g4_texture_direction_t dir, kinc_g4_texture_addressing_t addressing);
/// <summary>
/// Sets the pipeline for the next draw-call. The pipeline defines most rendering-state including the shaders to be used.
/// </summary>
@@ -299,13 +297,6 @@ void kinc_g4_set_matrix4(kinc_g4_constant_location_t location, kinc_matrix4x4_t
/// <param name="filter">The mode to set</param>
void kinc_g4_set_texture_magnification_filter(kinc_g4_texture_unit_t unit, kinc_g4_texture_filter_t filter);
/// <summary>
/// Set the texture-sampling-mode for upscaled 3D-textures.
/// </summary>
/// <param name="unit">The texture-unit to set the texture-sampling-mode for</param>
/// <param name="filter">The mode to set</param>
void kinc_g4_set_texture3d_magnification_filter(kinc_g4_texture_unit_t texunit, kinc_g4_texture_filter_t filter);
/// <summary>
/// Set the texture-sampling-mode for downscaled textures.
/// </summary>
@@ -313,13 +304,6 @@ void kinc_g4_set_texture3d_magnification_filter(kinc_g4_texture_unit_t texunit,
/// <param name="filter">The mode to set</param>
void kinc_g4_set_texture_minification_filter(kinc_g4_texture_unit_t unit, kinc_g4_texture_filter_t filter);
/// <summary>
/// Set the texture-sampling-mode for downscaled 3D-textures.
/// </summary>
/// <param name="unit">The texture-unit to set the texture-sampling-mode for</param>
/// <param name="filter">The mode to set</param>
void kinc_g4_set_texture3d_minification_filter(kinc_g4_texture_unit_t texunit, kinc_g4_texture_filter_t filter);
/// <summary>
/// Sets the mipmap-sampling-mode which defines whether mipmaps are used at all and if so whether the two neighbouring mipmaps are linearly interpolated.
/// </summary>
@@ -327,14 +311,6 @@ void kinc_g4_set_texture3d_minification_filter(kinc_g4_texture_unit_t texunit, k
/// <param name="filter">The mode to set</param>
void kinc_g4_set_texture_mipmap_filter(kinc_g4_texture_unit_t unit, kinc_g4_mipmap_filter_t filter);
/// <summary>
/// Sets the mipmap-sampling-mode for a 3D-texture which defines whether mipmaps are used at all and if so whether the two neighbouring mipmaps are linearly
/// interpolated.
/// </summary>
/// <param name="unit">The texture-unit to set the mipmap-sampling-mode for</param>
/// <param name="filter">The mode to set</param>
void kinc_g4_set_texture3d_mipmap_filter(kinc_g4_texture_unit_t texunit, kinc_g4_mipmap_filter_t filter);
void kinc_g4_set_texture_compare_mode(kinc_g4_texture_unit_t unit, bool enabled);
void kinc_g4_set_texture_compare_func(kinc_g4_texture_unit_t unit, kinc_g4_compare_mode_t mode);
@@ -372,15 +348,6 @@ void kinc_g4_set_render_target_face(struct kinc_g4_render_target *texture, int f
/// <param name="texture">The texture to assign to the unit</param>
void kinc_g4_set_texture(kinc_g4_texture_unit_t unit, struct kinc_g4_texture *texture);
/// <summary>
/// Assigns a texture to a texture-unit for direct access via GLSL's texelFetch (as
/// opposed to GLSL's texture). The name of this functions is unfortunately based
/// on OpenGL's confusing terminology.
/// </summary>
/// <param name="unit">The unit to assign this texture to</param>
/// <param name="texture">The texture to assign to the unit</param>
void kinc_g4_set_image_texture(kinc_g4_texture_unit_t unit, struct kinc_g4_texture *texture);
/// <summary>
/// Returns the currently used number of samples for hardware-antialiasing.
/// </summary>
+2 -25
View File
@@ -34,7 +34,7 @@ typedef enum kinc_image_format {
} kinc_image_format_t;
typedef struct kinc_image {
int width, height, depth;
int width, height;
kinc_image_format_t format;
unsigned internal_format;
kinc_image_compression_t compression;
@@ -55,12 +55,6 @@ typedef struct kinc_image_read_callbacks {
/// <returns>The size that's occupied by the image in memory in bytes</returns>
size_t kinc_image_init(kinc_image_t *image, void *memory, int width, int height, kinc_image_format_t format);
/// <summary>
/// Creates a 3D kinc_image in the provided memory.
/// </summary>
/// <returns>The size that's occupied by the image in memory in bytes</returns>
size_t kinc_image_init3d(kinc_image_t *image, void *memory, int width, int height, int depth, kinc_image_format_t format);
/// <summary>
/// Peeks into an image file and figures out the size it will occupy in memory.
/// </summary>
@@ -105,11 +99,6 @@ size_t kinc_image_init_from_encoded_bytes(kinc_image_t *image, void *memory, voi
/// </summary>
void kinc_image_init_from_bytes(kinc_image_t *image, void *data, int width, int height, kinc_image_format_t format);
/// <summary>
/// Creates a 3D image from memory.
/// </summary>
void kinc_image_init_from_bytes3d(kinc_image_t *image, void *data, int width, int height, int depth, kinc_image_format_t format);
/// <summary>
/// Destroys an image. This does not free the user-provided memory.
/// </summary>
@@ -562,27 +551,17 @@ int kinc_image_format_sizeof(kinc_image_format_t format) {
//}
size_t kinc_image_init(kinc_image_t *image, void *memory, int width, int height, kinc_image_format_t format) {
return kinc_image_init3d(image, memory, width, height, 1, format);
}
size_t kinc_image_init3d(kinc_image_t *image, void *memory, int width, int height, int depth, kinc_image_format_t format) {
image->width = width;
image->height = height;
image->depth = depth;
image->format = format;
image->compression = KINC_IMAGE_COMPRESSION_NONE;
image->data = memory;
return width * height * depth * kinc_image_format_sizeof(format);
return width * height * kinc_image_format_sizeof(format);
}
void kinc_image_init_from_bytes(kinc_image_t *image, void *data, int width, int height, kinc_image_format_t format) {
kinc_image_init_from_bytes3d(image, data, width, height, 1, format);
}
void kinc_image_init_from_bytes3d(kinc_image_t *image, void *data, int width, int height, int depth, kinc_image_format_t format) {
image->width = width;
image->height = height;
image->depth = depth;
image->format = format;
image->compression = KINC_IMAGE_COMPRESSION_NONE;
image->data = data;
@@ -690,7 +669,6 @@ size_t kinc_image_init_from_file(kinc_image_t *image, void *memory, const char *
kinc_file_reader_close(&reader);
image->data = memory;
image->data_size = dataSize;
image->depth = 1;
return dataSize;
}
return 0;
@@ -712,7 +690,6 @@ size_t kinc_image_init_from_encoded_bytes(kinc_image_t *image, void *memory, voi
loadImage(callbacks, &image_memory, format, memory, &dataSize, &image->width, &image->height, &image->compression, &image->format, &image->internal_format);
image->data = memory;
image->data_size = dataSize;
image->depth = 1;
return dataSize;
}
-12
View File
@@ -264,21 +264,10 @@ function g4_set_tex_depth(unit: kinc_tex_unit_t, tex: image_t) {
iron_g4_set_texture_depth(unit, tex.render_target_);
}
function g4_set_image_tex(unit: kinc_tex_unit_t, tex: image_t) {
if (tex == null) {
return;
}
iron_g4_set_image_texture(unit, tex.texture_);
}
function g4_set_tex_params(tex_unit: kinc_tex_unit_t, u_addressing: tex_addressing_t, v_addressing: tex_addressing_t, minification_filter: tex_filter_t, magnification_filter: tex_filter_t, mipmap_filter: mip_map_filter_t) {
iron_g4_set_texture_parameters(tex_unit, u_addressing, v_addressing, minification_filter, magnification_filter, mipmap_filter);
}
function g4_set_tex_3d_params(tex_unit: kinc_tex_unit_t, u_addressing: tex_addressing_t, v_addressing: tex_addressing_t, w_addressing: tex_addressing_t, minification_filter: tex_filter_t, magnification_filter: tex_filter_t, mipmap_filter: mip_map_filter_t) {
iron_g4_set_texture3d_parameters(tex_unit, u_addressing, v_addressing, w_addressing, minification_filter, magnification_filter, mipmap_filter);
}
function g4_set_pipeline(pipe: pipeline_t) {
g4_pipeline_set(pipe);
}
@@ -519,7 +508,6 @@ declare type image_t = {
pixels?: buffer_t;
width?: i32;
height?: i32;
depth?: i32;
};
type pipeline_t = {
-2
View File
@@ -248,9 +248,7 @@ declare function iron_g4_get_texture_unit(pipeline: any, name: string): any;
declare function iron_g4_set_texture(stage: any, texture: any): void;
declare function iron_g4_set_render_target(stage: any, render_target: any): void;
declare function iron_g4_set_texture_depth(unit: any, texture: any): void;
declare function iron_g4_set_image_texture(stage: any, texture: any): void;
declare function iron_g4_set_texture_parameters(tex_unit: any, u_addr: i32, v_addr: i32, min_filter: i32, mag_filter: i32, mip_filter: i32): void;
declare function iron_g4_set_texture3d_parameters(tex_unit: any, u_addr: i32, v_addr: i32, w_addr: i32, min_filter: i32, mag_filter: i32, mip_filter: i32): void;
declare function iron_g4_set_bool(location: any, value: bool): void;
declare function iron_g4_set_int(location: any, value: i32): void;
declare function iron_g4_set_float(location: any, value: f32): void;