You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-14 13:41:12 +00:00
Texture refactor
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
This commit is contained in:
@@ -51,18 +51,6 @@ VisualServer *VisualServer::create() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
RID VisualServer::texture_create_from_image(const Ref<Image> &p_image, uint32_t p_flags) {
|
||||
|
||||
ERR_FAIL_COND_V(!p_image.is_valid(), RID());
|
||||
RID texture = texture_create();
|
||||
texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), VS::TEXTURE_TYPE_2D, p_flags); //if it has mipmaps, use, else generate
|
||||
ERR_FAIL_COND_V(!texture.is_valid(), texture);
|
||||
|
||||
texture_set_data(texture, p_image);
|
||||
|
||||
return texture;
|
||||
}
|
||||
|
||||
Array VisualServer::_texture_debug_usage_bind() {
|
||||
|
||||
List<TextureInfo> list;
|
||||
@@ -167,7 +155,7 @@ RID VisualServer::get_test_texture() {
|
||||
|
||||
Ref<Image> data = memnew(Image(TEST_TEXTURE_SIZE, TEST_TEXTURE_SIZE, false, Image::FORMAT_RGB8, test_data));
|
||||
|
||||
test_texture = texture_create_from_image(data);
|
||||
test_texture = texture_2d_create(data);
|
||||
|
||||
return test_texture;
|
||||
}
|
||||
@@ -334,9 +322,7 @@ RID VisualServer::get_white_texture() {
|
||||
w[i] = 255;
|
||||
}
|
||||
Ref<Image> white = memnew(Image(4, 4, 0, Image::FORMAT_RGB8, wt));
|
||||
white_texture = texture_create();
|
||||
texture_allocate(white_texture, 4, 4, 0, Image::FORMAT_RGB8, TEXTURE_TYPE_2D);
|
||||
texture_set_data(white_texture, white);
|
||||
white_texture = texture_2d_create(white);
|
||||
return white_texture;
|
||||
}
|
||||
|
||||
@@ -1647,28 +1633,8 @@ void VisualServer::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("sync"), &VisualServer::sync);
|
||||
ClassDB::bind_method(D_METHOD("draw", "swap_buffers", "frame_step"), &VisualServer::draw, DEFVAL(true), DEFVAL(0.0));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("texture_create"), &VisualServer::texture_create);
|
||||
ClassDB::bind_method(D_METHOD("texture_create_from_image", "image", "flags"), &VisualServer::texture_create_from_image, DEFVAL(TEXTURE_FLAGS_DEFAULT));
|
||||
ClassDB::bind_method(D_METHOD("texture_allocate", "texture", "width", "height", "depth_3d", "format", "type", "flags"), &VisualServer::texture_allocate, DEFVAL(TEXTURE_FLAGS_DEFAULT));
|
||||
ClassDB::bind_method(D_METHOD("texture_set_data", "texture", "image", "layer"), &VisualServer::texture_set_data, DEFVAL(0));
|
||||
ClassDB::bind_method(D_METHOD("texture_set_data_partial", "texture", "image", "src_x", "src_y", "src_w", "src_h", "dst_x", "dst_y", "dst_mip", "layer"), &VisualServer::texture_set_data_partial, DEFVAL(0));
|
||||
ClassDB::bind_method(D_METHOD("texture_get_data", "texture", "cube_side"), &VisualServer::texture_get_data, DEFVAL(CUBEMAP_LEFT));
|
||||
ClassDB::bind_method(D_METHOD("texture_set_flags", "texture", "flags"), &VisualServer::texture_set_flags);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_flags", "texture"), &VisualServer::texture_get_flags);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_format", "texture"), &VisualServer::texture_get_format);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_type", "texture"), &VisualServer::texture_get_type);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_texid", "texture"), &VisualServer::texture_get_texid);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_width", "texture"), &VisualServer::texture_get_width);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_height", "texture"), &VisualServer::texture_get_height);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_depth", "texture"), &VisualServer::texture_get_depth);
|
||||
ClassDB::bind_method(D_METHOD("texture_set_size_override", "texture", "width", "height", "depth"), &VisualServer::texture_set_size_override);
|
||||
ClassDB::bind_method(D_METHOD("texture_set_path", "texture", "path"), &VisualServer::texture_set_path);
|
||||
ClassDB::bind_method(D_METHOD("texture_get_path", "texture"), &VisualServer::texture_get_path);
|
||||
ClassDB::bind_method(D_METHOD("texture_set_shrink_all_x2_on_set_data", "shrink"), &VisualServer::texture_set_shrink_all_x2_on_set_data);
|
||||
ClassDB::bind_method(D_METHOD("texture_bind", "texture", "number"), &VisualServer::texture_bind);
|
||||
#warning TODO all texture methods need re-binding
|
||||
|
||||
ClassDB::bind_method(D_METHOD("texture_debug_usage"), &VisualServer::_texture_debug_usage_bind);
|
||||
ClassDB::bind_method(D_METHOD("textures_keep_original", "enable"), &VisualServer::textures_keep_original);
|
||||
#ifndef _3D_DISABLED
|
||||
ClassDB::bind_method(D_METHOD("sky_create"), &VisualServer::sky_create);
|
||||
ClassDB::bind_method(D_METHOD("sky_set_texture", "sky", "cube_map", "radiance_size"), &VisualServer::sky_set_texture);
|
||||
@@ -2058,26 +2024,16 @@ void VisualServer::_bind_methods() {
|
||||
BIND_CONSTANT(MATERIAL_RENDER_PRIORITY_MIN);
|
||||
BIND_CONSTANT(MATERIAL_RENDER_PRIORITY_MAX);
|
||||
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LEFT);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_RIGHT);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_BOTTOM);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_TOP);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_FRONT);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_BACK);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LAYER_LEFT);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LAYER_RIGHT);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LAYER_BOTTOM);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LAYER_TOP);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LAYER_FRONT);
|
||||
BIND_ENUM_CONSTANT(CUBEMAP_LAYER_BACK);
|
||||
|
||||
BIND_ENUM_CONSTANT(TEXTURE_TYPE_2D);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_TYPE_CUBEMAP);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_TYPE_2D_ARRAY);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_TYPE_3D);
|
||||
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_MIPMAPS);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_REPEAT);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_FILTER);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_ANISOTROPIC_FILTER);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_CONVERT_TO_LINEAR);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_MIRRORED_REPEAT);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAG_USED_FOR_STREAMING);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_FLAGS_DEFAULT);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_LAYERED_2D_ARRAY);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_LAYERED_CUBEMAP);
|
||||
BIND_ENUM_CONSTANT(TEXTURE_LAYERED_CUBEMAP_ARRAY);
|
||||
|
||||
BIND_ENUM_CONSTANT(SHADER_SPATIAL);
|
||||
BIND_ENUM_CONSTANT(SHADER_CANVAS_ITEM);
|
||||
|
||||
Reference in New Issue
Block a user