You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Add compatibility methods for RenderingDevice BarrierMask
This commit is contained in:
@@ -34,8 +34,46 @@ RID RenderingDevice::_shader_create_from_bytecode_bind_compat_79606(const Vector
|
||||
return shader_create_from_bytecode(p_shader_binary, RID());
|
||||
}
|
||||
|
||||
BitField<RenderingDevice::BarrierMask> RenderingDevice::_convert_barrier_mask_81356(BitField<BarrierMask> p_old_barrier) {
|
||||
if (p_old_barrier == 7) {
|
||||
return BARRIER_MASK_ALL_BARRIERS;
|
||||
} else if (p_old_barrier == 16) {
|
||||
return BARRIER_MASK_NO_BARRIER;
|
||||
}
|
||||
|
||||
BitField<BarrierMask> new_barrier;
|
||||
if (p_old_barrier & 1) {
|
||||
new_barrier.set_flag(BARRIER_MASK_VERTEX);
|
||||
}
|
||||
if (p_old_barrier & 2) {
|
||||
new_barrier.set_flag(BARRIER_MASK_FRAGMENT);
|
||||
}
|
||||
if (p_old_barrier & 4) {
|
||||
new_barrier.set_flag(BARRIER_MASK_COMPUTE);
|
||||
}
|
||||
if (p_old_barrier & 8) {
|
||||
new_barrier.set_flag(BARRIER_MASK_TRANSFER);
|
||||
}
|
||||
return new_barrier;
|
||||
}
|
||||
|
||||
void RenderingDevice::_draw_list_end_bind_compat_81356(BitField<BarrierMask> p_post_barrier) {
|
||||
draw_list_end(_convert_barrier_mask_81356(p_post_barrier));
|
||||
}
|
||||
|
||||
void RenderingDevice::_compute_list_end_bind_compat_81356(BitField<BarrierMask> p_post_barrier) {
|
||||
compute_list_end(_convert_barrier_mask_81356(p_post_barrier));
|
||||
}
|
||||
|
||||
void RenderingDevice::_barrier_bind_compat_81356(BitField<BarrierMask> p_from, BitField<BarrierMask> p_to) {
|
||||
barrier(_convert_barrier_mask_81356(p_from), _convert_barrier_mask_81356(p_to));
|
||||
}
|
||||
|
||||
void RenderingDevice::_bind_compatibility_methods() {
|
||||
ClassDB::bind_compatibility_method(D_METHOD("shader_create_from_bytecode", "binary_data"), &RenderingDevice::_shader_create_from_bytecode_bind_compat_79606);
|
||||
ClassDB::bind_compatibility_method(D_METHOD("draw_list_end", "post_barrier"), &RenderingDevice::_draw_list_end_bind_compat_81356, DEFVAL(7));
|
||||
ClassDB::bind_compatibility_method(D_METHOD("compute_list_end", "post_barrier"), &RenderingDevice::_compute_list_end_bind_compat_81356, DEFVAL(7));
|
||||
ClassDB::bind_compatibility_method(D_METHOD("barrier", "from", "to"), &RenderingDevice::_barrier_bind_compat_81356, DEFVAL(7), DEFVAL(7));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user