|
@@ -700,9 +700,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint
|
|
|
return OK;
|
|
|
}
|
|
|
|
|
|
-uint32_t RenderingServer::mesh_surface_get_format_offset(uint32_t p_format, int p_vertex_len, int p_array_index) const {
|
|
|
+uint32_t RenderingServer::mesh_surface_get_format_offset(BitField<ArrayFormat> p_format, int p_vertex_len, int p_array_index) const {
|
|
|
ERR_FAIL_INDEX_V(p_array_index, ARRAY_MAX, 0);
|
|
|
- p_format &= ~ARRAY_FORMAT_INDEX;
|
|
|
+ p_format = int64_t(p_format) & ~ARRAY_FORMAT_INDEX;
|
|
|
uint32_t offsets[ARRAY_MAX];
|
|
|
uint32_t vstr;
|
|
|
uint32_t astr;
|
|
@@ -711,8 +711,8 @@ uint32_t RenderingServer::mesh_surface_get_format_offset(uint32_t p_format, int
|
|
|
return offsets[p_array_index];
|
|
|
}
|
|
|
|
|
|
-uint32_t RenderingServer::mesh_surface_get_format_vertex_stride(uint32_t p_format, int p_vertex_len) const {
|
|
|
- p_format &= ~ARRAY_FORMAT_INDEX;
|
|
|
+uint32_t RenderingServer::mesh_surface_get_format_vertex_stride(BitField<ArrayFormat> p_format, int p_vertex_len) const {
|
|
|
+ p_format = int64_t(p_format) & ~ARRAY_FORMAT_INDEX;
|
|
|
uint32_t offsets[ARRAY_MAX];
|
|
|
uint32_t vstr;
|
|
|
uint32_t astr;
|
|
@@ -720,8 +720,8 @@ uint32_t RenderingServer::mesh_surface_get_format_vertex_stride(uint32_t p_forma
|
|
|
mesh_surface_make_offsets_from_format(p_format, p_vertex_len, 0, offsets, vstr, astr, sstr);
|
|
|
return vstr;
|
|
|
}
|
|
|
-uint32_t RenderingServer::mesh_surface_get_format_attribute_stride(uint32_t p_format, int p_vertex_len) const {
|
|
|
- p_format &= ~ARRAY_FORMAT_INDEX;
|
|
|
+uint32_t RenderingServer::mesh_surface_get_format_attribute_stride(BitField<ArrayFormat> p_format, int p_vertex_len) const {
|
|
|
+ p_format = int64_t(p_format) & ~ARRAY_FORMAT_INDEX;
|
|
|
uint32_t offsets[ARRAY_MAX];
|
|
|
uint32_t vstr;
|
|
|
uint32_t astr;
|
|
@@ -729,8 +729,8 @@ uint32_t RenderingServer::mesh_surface_get_format_attribute_stride(uint32_t p_fo
|
|
|
mesh_surface_make_offsets_from_format(p_format, p_vertex_len, 0, offsets, vstr, astr, sstr);
|
|
|
return astr;
|
|
|
}
|
|
|
-uint32_t RenderingServer::mesh_surface_get_format_skin_stride(uint32_t p_format, int p_vertex_len) const {
|
|
|
- p_format &= ~ARRAY_FORMAT_INDEX;
|
|
|
+uint32_t RenderingServer::mesh_surface_get_format_skin_stride(BitField<ArrayFormat> p_format, int p_vertex_len) const {
|
|
|
+ p_format = int64_t(p_format) & ~ARRAY_FORMAT_INDEX;
|
|
|
uint32_t offsets[ARRAY_MAX];
|
|
|
uint32_t vstr;
|
|
|
uint32_t astr;
|
|
@@ -1049,7 +1049,7 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa
|
|
|
return OK;
|
|
|
}
|
|
|
|
|
|
-void RenderingServer::mesh_add_surface_from_arrays(RID p_mesh, PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, uint32_t p_compress_format) {
|
|
|
+void RenderingServer::mesh_add_surface_from_arrays(RID p_mesh, PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, BitField<ArrayFormat> p_compress_format) {
|
|
|
SurfaceData sd;
|
|
|
Error err = mesh_create_surface_data_from_arrays(&sd, p_primitive, p_arrays, p_blend_shapes, p_lods, p_compress_format);
|
|
|
if (err != OK) {
|
|
@@ -1797,35 +1797,35 @@ void RenderingServer::_bind_methods() {
|
|
|
BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RGBA_FLOAT);
|
|
|
BIND_ENUM_CONSTANT(ARRAY_CUSTOM_MAX);
|
|
|
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_VERTEX);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_NORMAL);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_TANGENT);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_COLOR);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_TEX_UV);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_TEX_UV2);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM0);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM1);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM2);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM3);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_BONES);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_WEIGHTS);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_INDEX);
|
|
|
-
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_BLEND_SHAPE_MASK);
|
|
|
-
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM_BASE);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM_BITS);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM0_SHIFT);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM1_SHIFT);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM2_SHIFT);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM3_SHIFT);
|
|
|
-
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FORMAT_CUSTOM_MASK);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_COMPRESS_FLAGS_BASE);
|
|
|
-
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FLAG_USE_2D_VERTICES);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FLAG_USE_DYNAMIC_UPDATE);
|
|
|
- BIND_ENUM_CONSTANT(ARRAY_FLAG_USE_8_BONE_WEIGHTS);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_VERTEX);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_NORMAL);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_TANGENT);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_COLOR);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_TEX_UV);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_TEX_UV2);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM0);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM1);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM2);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM3);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_BONES);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_WEIGHTS);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_INDEX);
|
|
|
+
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_BLEND_SHAPE_MASK);
|
|
|
+
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM_BASE);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM_BITS);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM0_SHIFT);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM1_SHIFT);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM2_SHIFT);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM3_SHIFT);
|
|
|
+
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM_MASK);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_COMPRESS_FLAGS_BASE);
|
|
|
+
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FLAG_USE_2D_VERTICES);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FLAG_USE_DYNAMIC_UPDATE);
|
|
|
+ BIND_BITFIELD_FLAG(ARRAY_FLAG_USE_8_BONE_WEIGHTS);
|
|
|
|
|
|
BIND_ENUM_CONSTANT(PRIMITIVE_POINTS);
|
|
|
BIND_ENUM_CONSTANT(PRIMITIVE_LINES);
|