Renaming of servers for coherency.

VisualServer -> RenderingServer
PhysicsServer -> PhysicsServer3D
Physics2DServer -> PhysicsServer2D
NavigationServer -> NavigationServer3D
Navigation2DServer -> NavigationServer2D

Also renamed corresponding files.
This commit is contained in:
Juan Linietsky 2020-03-27 15:21:27 -03:00
parent 307b1b3a58
commit a6f3bc7c69
390 changed files with 10701 additions and 10702 deletions

View File

@ -317,7 +317,7 @@ bool DebuggerMarshalls::VisualProfilerFrame::deserialize(const Array &p_arr) {
CHECK_SIZE(p_arr, size, "VisualProfilerFrame"); CHECK_SIZE(p_arr, size, "VisualProfilerFrame");
int idx = 2; int idx = 2;
areas.resize(size / 3); areas.resize(size / 3);
VS::FrameProfileArea *w = areas.ptrw(); RS::FrameProfileArea *w = areas.ptrw();
for (int i = 0; i < size / 3; i++) { for (int i = 0; i < size / 3; i++) {
w[i].name = p_arr[idx]; w[i].name = p_arr[idx];
w[i].cpu_msec = p_arr[idx + 1]; w[i].cpu_msec = p_arr[idx + 1];

View File

@ -32,7 +32,7 @@
#define DEBUGGER_MARSHARLLS_H #define DEBUGGER_MARSHARLLS_H
#include "core/script_language.h" #include "core/script_language.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
struct DebuggerMarshalls { struct DebuggerMarshalls {
@ -165,7 +165,7 @@ struct DebuggerMarshalls {
// Visual Profiler // Visual Profiler
struct VisualProfilerFrame { struct VisualProfilerFrame {
uint64_t frame_number; uint64_t frame_number;
Vector<VS::FrameProfileArea> areas; Vector<RS::FrameProfileArea> areas;
Array serialize(); Array serialize();
bool deserialize(const Array &p_arr); bool deserialize(const Array &p_arr);

View File

@ -354,18 +354,18 @@ struct RemoteDebugger::VisualProfiler {
Map<StringName, ServerInfo> server_data; Map<StringName, ServerInfo> server_data;
void toggle(bool p_enable, const Array &p_opts) { void toggle(bool p_enable, const Array &p_opts) {
VS::get_singleton()->set_frame_profiling_enabled(p_enable); RS::get_singleton()->set_frame_profiling_enabled(p_enable);
} }
void add(const Array &p_data) {} void add(const Array &p_data) {}
void tick(float p_frame_time, float p_idle_time, float p_physics_time, float p_physics_frame_time) { void tick(float p_frame_time, float p_idle_time, float p_physics_time, float p_physics_frame_time) {
Vector<VS::FrameProfileArea> profile_areas = VS::get_singleton()->get_frame_profile(); Vector<RS::FrameProfileArea> profile_areas = RS::get_singleton()->get_frame_profile();
DebuggerMarshalls::VisualProfilerFrame frame; DebuggerMarshalls::VisualProfilerFrame frame;
if (!profile_areas.size()) if (!profile_areas.size())
return; return;
frame.frame_number = VS::get_singleton()->get_frame_profile_frame(); frame.frame_number = RS::get_singleton()->get_frame_profile_frame();
frame.areas.append_array(profile_areas); frame.areas.append_array(profile_areas);
EngineDebugger::get_singleton()->send_message("visual:profile_frame", frame.serialize()); EngineDebugger::get_singleton()->send_message("visual:profile_frame", frame.serialize());
} }
@ -404,10 +404,10 @@ void RemoteDebugger::_send_resource_usage() {
DebuggerMarshalls::ResourceUsage usage; DebuggerMarshalls::ResourceUsage usage;
List<VS::TextureInfo> tinfo; List<RS::TextureInfo> tinfo;
VS::get_singleton()->texture_debug_usage(&tinfo); RS::get_singleton()->texture_debug_usage(&tinfo);
for (List<VS::TextureInfo>::Element *E = tinfo.front(); E; E = E->next()) { for (List<RS::TextureInfo>::Element *E = tinfo.front(); E; E = E->next()) {
DebuggerMarshalls::ResourceInfo info; DebuggerMarshalls::ResourceInfo info;
info.path = E->get().path; info.path = E->get().path;
@ -771,9 +771,9 @@ void RemoteDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) {
// This is for the camera override to stay live even when the game is paused from the editor // This is for the camera override to stay live even when the game is paused from the editor
loop_time_sec = (OS::get_singleton()->get_ticks_usec() - loop_begin_usec) / 1000000.0f; loop_time_sec = (OS::get_singleton()->get_ticks_usec() - loop_begin_usec) / 1000000.0f;
VisualServer::get_singleton()->sync(); RenderingServer::get_singleton()->sync();
if (VisualServer::get_singleton()->has_changed()) { if (RenderingServer::get_singleton()->has_changed()) {
VisualServer::get_singleton()->draw(true, loop_time_sec * Engine::get_singleton()->get_time_scale()); RenderingServer::get_singleton()->draw(true, loop_time_sec * Engine::get_singleton()->get_time_scale());
} }
} }

View File

@ -35,8 +35,8 @@
#include "core/rid_owner.h" #include "core/rid_owner.h"
#include "core/self_list.h" #include "core/self_list.h"
#include "scene/resources/mesh.h" #include "scene/resources/mesh.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
class RasterizerSceneDummy : public RasterizerScene { class RasterizerSceneDummy : public RasterizerScene {
public: public:
@ -55,7 +55,7 @@ public:
RID sky_create() { return RID(); } RID sky_create() { return RID(); }
void sky_set_radiance_size(RID p_sky, int p_radiance_size) {} void sky_set_radiance_size(RID p_sky, int p_radiance_size) {}
void sky_set_mode(RID p_sky, VS::SkyMode p_samples) {} void sky_set_mode(RID p_sky, RS::SkyMode p_samples) {}
void sky_set_texture(RID p_sky, RID p_panorama) {} void sky_set_texture(RID p_sky, RID p_panorama) {}
void sky_set_texture(RID p_sky, RID p_cube_map, int p_radiance_size) {} void sky_set_texture(RID p_sky, RID p_cube_map, int p_radiance_size) {}
void sky_set_material(RID p_sky, RID p_material) {} void sky_set_material(RID p_sky, RID p_material) {}
@ -64,28 +64,28 @@ public:
RID environment_create() { return RID(); } RID environment_create() { return RID(); }
void environment_set_background(RID p_env, VS::EnvironmentBG p_bg) {} void environment_set_background(RID p_env, RS::EnvironmentBG p_bg) {}
void environment_set_sky(RID p_env, RID p_sky) {} void environment_set_sky(RID p_env, RID p_sky) {}
void environment_set_sky_custom_fov(RID p_env, float p_scale) {} void environment_set_sky_custom_fov(RID p_env, float p_scale) {}
void environment_set_sky_orientation(RID p_env, const Basis &p_orientation) {} void environment_set_sky_orientation(RID p_env, const Basis &p_orientation) {}
void environment_set_bg_color(RID p_env, const Color &p_color) {} void environment_set_bg_color(RID p_env, const Color &p_color) {}
void environment_set_bg_energy(RID p_env, float p_energy) {} void environment_set_bg_energy(RID p_env, float p_energy) {}
void environment_set_canvas_max_layer(RID p_env, int p_max_layer) {} void environment_set_canvas_max_layer(RID p_env, int p_max_layer) {}
void environment_set_ambient_light(RID p_env, const Color &p_color, VS::EnvironmentAmbientSource p_ambient = VS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, VS::EnvironmentReflectionSource p_reflection_source = VS::ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) {} void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) {}
// FIXME: Disabled during Vulkan refactoring, should be ported. // FIXME: Disabled during Vulkan refactoring, should be ported.
#if 0 #if 0
void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) {} void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) {}
#endif #endif
void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) {} void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) {}
void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) {} void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) {}
void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance, bool p_roughness) {} void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance, bool p_roughness) {}
virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_bias, float p_light_affect, float p_ao_channel_affect, VS::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness) {} virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_bias, float p_light_affect, float p_ao_channel_affect, RS::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness) {}
virtual void environment_set_ssao_quality(VS::EnvironmentSSAOQuality p_quality, bool p_half_size) {} virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size) {}
void environment_set_tonemap(RID p_env, VS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {} void environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {}
void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, RID p_ramp) {} void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, RID p_ramp) {}
@ -94,13 +94,13 @@ public:
void environment_set_fog_height(RID p_env, bool p_enable, float p_min_height, float p_max_height, float p_height_curve) {} void environment_set_fog_height(RID p_env, bool p_enable, float p_min_height, float p_max_height, float p_height_curve) {}
bool is_environment(RID p_env) const { return false; } bool is_environment(RID p_env) const { return false; }
VS::EnvironmentBG environment_get_background(RID p_env) const { return VS::ENV_BG_KEEP; } RS::EnvironmentBG environment_get_background(RID p_env) const { return RS::ENV_BG_KEEP; }
int environment_get_canvas_max_layer(RID p_env) const { return 0; } int environment_get_canvas_max_layer(RID p_env) const { return 0; }
virtual RID camera_effects_create() { return RID(); } virtual RID camera_effects_create() { return RID(); }
virtual void camera_effects_set_dof_blur_quality(VS::DOFBlurQuality p_quality, bool p_use_jitter) {} virtual void camera_effects_set_dof_blur_quality(RS::DOFBlurQuality p_quality, bool p_use_jitter) {}
virtual void camera_effects_set_dof_blur_bokeh_shape(VS::DOFBokehShape p_shape) {} virtual void camera_effects_set_dof_blur_bokeh_shape(RS::DOFBokehShape p_shape) {}
virtual void camera_effects_set_dof_blur(RID p_camera_effects, bool p_far_enable, float p_far_distance, float p_far_transition, bool p_near_enable, float p_near_distance, float p_near_transition, float p_amount) {} virtual void camera_effects_set_dof_blur(RID p_camera_effects, bool p_far_enable, float p_far_distance, float p_far_transition, bool p_near_enable, float p_near_distance, float p_near_transition, float p_amount) {}
virtual void camera_effects_set_custom_exposure(RID p_camera_effects, bool p_enable, float p_exposure) {} virtual void camera_effects_set_custom_exposure(RID p_camera_effects, bool p_enable, float p_exposure) {}
@ -133,10 +133,10 @@ public:
void set_scene_pass(uint64_t p_pass) {} void set_scene_pass(uint64_t p_pass) {}
virtual void set_time(double p_time, double p_step) {} virtual void set_time(double p_time, double p_step) {}
void set_debug_draw_mode(VS::ViewportDebugDraw p_debug_draw) {} void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) {}
virtual RID render_buffers_create() { return RID(); } virtual RID render_buffers_create() { return RID(); }
virtual void render_buffers_configure(RID p_render_buffers, RID p_render_target, int p_width, int p_height, VS::ViewportMSAA p_msaa) {} virtual void render_buffers_configure(RID p_render_buffers, RID p_render_target, int p_width, int p_height, RS::ViewportMSAA p_msaa) {}
virtual void screen_space_roughness_limiter_set_active(bool p_enable, float p_curve) {} virtual void screen_space_roughness_limiter_set_active(bool p_enable, float p_curve) {}
virtual bool screen_space_roughness_limiter_is_active() const { return false; } virtual bool screen_space_roughness_limiter_is_active() const { return false; }
@ -162,7 +162,7 @@ public:
struct DummySurface { struct DummySurface {
uint32_t format; uint32_t format;
VS::PrimitiveType primitive; RS::PrimitiveType primitive;
Vector<uint8_t> array; Vector<uint8_t> array;
int vertex_count; int vertex_count;
Vector<uint8_t> index_array; Vector<uint8_t> index_array;
@ -175,14 +175,14 @@ public:
struct DummyMesh { struct DummyMesh {
Vector<DummySurface> surfaces; Vector<DummySurface> surfaces;
int blend_shape_count; int blend_shape_count;
VS::BlendShapeMode blend_shape_mode; RS::BlendShapeMode blend_shape_mode;
}; };
mutable RID_PtrOwner<DummyTexture> texture_owner; mutable RID_PtrOwner<DummyTexture> texture_owner;
mutable RID_PtrOwner<DummyMesh> mesh_owner; mutable RID_PtrOwner<DummyMesh> mesh_owner;
virtual RID texture_2d_create(const Ref<Image> &p_image) { return RID(); } virtual RID texture_2d_create(const Ref<Image> &p_image) { return RID(); }
virtual RID texture_2d_layered_create(const Vector<Ref<Image>> &p_layers, VS::TextureLayeredType p_layered_type) { return RID(); } virtual RID texture_2d_layered_create(const Vector<Ref<Image>> &p_layers, RS::TextureLayeredType p_layered_type) { return RID(); }
virtual RID texture_3d_create(const Vector<Ref<Image>> &p_slices) { return RID(); } virtual RID texture_3d_create(const Vector<Ref<Image>> &p_slices) { return RID(); }
virtual RID texture_proxy_create(RID p_base) { return RID(); } virtual RID texture_proxy_create(RID p_base) { return RID(); }
@ -209,11 +209,11 @@ public:
virtual void texture_set_path(RID p_texture, const String &p_path) {} virtual void texture_set_path(RID p_texture, const String &p_path) {}
virtual String texture_get_path(RID p_texture) const { return String(); } virtual String texture_get_path(RID p_texture) const { return String(); }
virtual void texture_set_detect_3d_callback(RID p_texture, VS::TextureDetectCallback p_callback, void *p_userdata) {} virtual void texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) {}
virtual void texture_set_detect_normal_callback(RID p_texture, VS::TextureDetectCallback p_callback, void *p_userdata) {} virtual void texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) {}
virtual void texture_set_detect_roughness_callback(RID p_texture, VS::TextureDetectRoughnessCallback p_callback, void *p_userdata) {} virtual void texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) {}
virtual void texture_debug_usage(List<VS::TextureInfo> *r_info) {} virtual void texture_debug_usage(List<RS::TextureInfo> *r_info) {}
virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) {} virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) {}
virtual Size2 texture_size_with_proxy(RID p_proxy) { return Size2(); } virtual Size2 texture_size_with_proxy(RID p_proxy) { return Size2(); }
@ -225,7 +225,7 @@ public:
return texture_owner.make_rid(texture); return texture_owner.make_rid(texture);
} }
void texture_allocate(RID p_texture, int p_width, int p_height, int p_depth_3d, Image::Format p_format, VisualServer::TextureType p_type = VS::TEXTURE_TYPE_2D, uint32_t p_flags = VS::TEXTURE_FLAGS_DEFAULT) { void texture_allocate(RID p_texture, int p_width, int p_height, int p_depth_3d, Image::Format p_format, RenderingServer::TextureType p_type = RS::TEXTURE_TYPE_2D, uint32_t p_flags = RS::TEXTURE_FLAGS_DEFAULT) {
DummyTexture *t = texture_owner.getornull(p_texture); DummyTexture *t = texture_owner.getornull(p_texture);
ERR_FAIL_COND(!t); ERR_FAIL_COND(!t);
t->width = p_width; t->width = p_width;
@ -278,7 +278,7 @@ public:
return t->format; return t->format;
} }
VisualServer::TextureType texture_get_type(RID p_texture) const { return VS::TEXTURE_TYPE_2D; } RenderingServer::TextureType texture_get_type(RID p_texture) const { return RS::TEXTURE_TYPE_2D; }
uint32_t texture_get_texid(RID p_texture) const { return 0; } uint32_t texture_get_texid(RID p_texture) const { return 0; }
uint32_t texture_get_width(RID p_texture) const { return 0; } uint32_t texture_get_width(RID p_texture) const { return 0; }
uint32_t texture_get_height(RID p_texture) const { return 0; } uint32_t texture_get_height(RID p_texture) const { return 0; }
@ -299,13 +299,13 @@ public:
void texture_set_shrink_all_x2_on_set_data(bool p_enable) {} void texture_set_shrink_all_x2_on_set_data(bool p_enable) {}
void texture_debug_usage(List<VS::TextureInfo> *r_info) {} void texture_debug_usage(List<RS::TextureInfo> *r_info) {}
RID texture_create_radiance_cubemap(RID p_source, int p_resolution = -1) const { return RID(); } RID texture_create_radiance_cubemap(RID p_source, int p_resolution = -1) const { return RID(); }
void texture_set_detect_3d_callback(RID p_texture, VisualServer::TextureDetectCallback p_callback, void *p_userdata) {} void texture_set_detect_3d_callback(RID p_texture, RenderingServer::TextureDetectCallback p_callback, void *p_userdata) {}
void texture_set_detect_srgb_callback(RID p_texture, VisualServer::TextureDetectCallback p_callback, void *p_userdata) {} void texture_set_detect_srgb_callback(RID p_texture, RenderingServer::TextureDetectCallback p_callback, void *p_userdata) {}
void texture_set_detect_normal_callback(RID p_texture, VisualServer::TextureDetectCallback p_callback, void *p_userdata) {} void texture_set_detect_normal_callback(RID p_texture, RenderingServer::TextureDetectCallback p_callback, void *p_userdata) {}
void textures_keep_original(bool p_enable) {} void textures_keep_original(bool p_enable) {}
@ -353,14 +353,14 @@ public:
DummyMesh *mesh = memnew(DummyMesh); DummyMesh *mesh = memnew(DummyMesh);
ERR_FAIL_COND_V(!mesh, RID()); ERR_FAIL_COND_V(!mesh, RID());
mesh->blend_shape_count = 0; mesh->blend_shape_count = 0;
mesh->blend_shape_mode = VS::BLEND_SHAPE_MODE_NORMALIZED; mesh->blend_shape_mode = RS::BLEND_SHAPE_MODE_NORMALIZED;
return mesh_owner.make_rid(mesh); return mesh_owner.make_rid(mesh);
} }
void mesh_add_surface(RID p_mesh, const VS::SurfaceData &p_surface) {} void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) {}
#if 0 #if 0
void mesh_add_surface(RID p_mesh, uint32_t p_format, VS::PrimitiveType p_primitive, const Vector<uint8_t> &p_array, int p_vertex_count, const Vector<uint8_t> &p_index_array, int p_index_count, const AABB &p_aabb, const Vector<Vector<uint8_t> > &p_blend_shapes = Vector<Vector<uint8_t> >(), const Vector<AABB> &p_bone_aabbs = Vector<AABB>()) { void mesh_add_surface(RID p_mesh, uint32_t p_format, RS::PrimitiveType p_primitive, const Vector<uint8_t> &p_array, int p_vertex_count, const Vector<uint8_t> &p_index_array, int p_index_count, const AABB &p_aabb, const Vector<Vector<uint8_t> > &p_blend_shapes = Vector<Vector<uint8_t> >(), const Vector<AABB> &p_bone_aabbs = Vector<AABB>()) {
DummyMesh *m = mesh_owner.getornull(p_mesh); DummyMesh *m = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND(!m); ERR_FAIL_COND(!m);
@ -390,14 +390,14 @@ public:
return m->blend_shape_count; return m->blend_shape_count;
} }
void mesh_set_blend_shape_mode(RID p_mesh, VS::BlendShapeMode p_mode) { void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) {
DummyMesh *m = mesh_owner.getornull(p_mesh); DummyMesh *m = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND(!m); ERR_FAIL_COND(!m);
m->blend_shape_mode = p_mode; m->blend_shape_mode = p_mode;
} }
VS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const { RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const {
DummyMesh *m = mesh_owner.getornull(p_mesh); DummyMesh *m = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND_V(!m, VS::BLEND_SHAPE_MODE_NORMALIZED); ERR_FAIL_COND_V(!m, RS::BLEND_SHAPE_MODE_NORMALIZED);
return m->blend_shape_mode; return m->blend_shape_mode;
} }
@ -439,9 +439,9 @@ public:
return m->surfaces[p_surface].format; return m->surfaces[p_surface].format;
} }
VS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const { RS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const {
DummyMesh *m = mesh_owner.getornull(p_mesh); DummyMesh *m = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND_V(!m, VS::PRIMITIVE_POINTS); ERR_FAIL_COND_V(!m, RS::PRIMITIVE_POINTS);
return m->surfaces[p_surface].primitive; return m->surfaces[p_surface].primitive;
} }
@ -474,7 +474,7 @@ public:
} }
#endif #endif
VS::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const { return VS::SurfaceData(); } RS::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const { return RS::SurfaceData(); }
int mesh_get_surface_count(RID p_mesh) const { int mesh_get_surface_count(RID p_mesh) const {
DummyMesh *m = mesh_owner.getornull(p_mesh); DummyMesh *m = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND_V(!m, 0); ERR_FAIL_COND_V(!m, 0);
@ -491,7 +491,7 @@ public:
virtual RID multimesh_create() { return RID(); } virtual RID multimesh_create() { return RID(); }
virtual void multimesh_allocate(RID p_multimesh, int p_instances, VS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false) {} virtual void multimesh_allocate(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false) {}
int multimesh_get_instance_count(RID p_multimesh) const { return 0; } int multimesh_get_instance_count(RID p_multimesh) const { return 0; }
void multimesh_set_mesh(RID p_multimesh, RID p_mesh) {} void multimesh_set_mesh(RID p_multimesh, RID p_mesh) {}
@ -516,7 +516,7 @@ public:
/* IMMEDIATE API */ /* IMMEDIATE API */
RID immediate_create() { return RID(); } RID immediate_create() { return RID(); }
void immediate_begin(RID p_immediate, VS::PrimitiveType p_rimitive, RID p_texture = RID()) {} void immediate_begin(RID p_immediate, RS::PrimitiveType p_rimitive, RID p_texture = RID()) {}
void immediate_vertex(RID p_immediate, const Vector3 &p_vertex) {} void immediate_vertex(RID p_immediate, const Vector3 &p_vertex) {}
void immediate_normal(RID p_immediate, const Vector3 &p_normal) {} void immediate_normal(RID p_immediate, const Vector3 &p_normal) {}
void immediate_tangent(RID p_immediate, const Plane &p_tangent) {} void immediate_tangent(RID p_immediate, const Plane &p_tangent) {}
@ -543,14 +543,14 @@ public:
/* Light API */ /* Light API */
RID light_create(VS::LightType p_type) { return RID(); } RID light_create(RS::LightType p_type) { return RID(); }
RID directional_light_create() { return light_create(VS::LIGHT_DIRECTIONAL); } RID directional_light_create() { return light_create(RS::LIGHT_DIRECTIONAL); }
RID omni_light_create() { return light_create(VS::LIGHT_OMNI); } RID omni_light_create() { return light_create(RS::LIGHT_OMNI); }
RID spot_light_create() { return light_create(VS::LIGHT_SPOT); } RID spot_light_create() { return light_create(RS::LIGHT_SPOT); }
void light_set_color(RID p_light, const Color &p_color) {} void light_set_color(RID p_light, const Color &p_color) {}
void light_set_param(RID p_light, VS::LightParam p_param, float p_value) {} void light_set_param(RID p_light, RS::LightParam p_param, float p_value) {}
void light_set_shadow(RID p_light, bool p_enabled) {} void light_set_shadow(RID p_light, bool p_enabled) {}
void light_set_shadow_color(RID p_light, const Color &p_color) {} void light_set_shadow_color(RID p_light, const Color &p_color) {}
void light_set_projector(RID p_light, RID p_texture) {} void light_set_projector(RID p_light, RID p_texture) {}
@ -559,22 +559,22 @@ public:
void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) {} void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) {}
void light_set_use_gi(RID p_light, bool p_enabled) {} void light_set_use_gi(RID p_light, bool p_enabled) {}
void light_omni_set_shadow_mode(RID p_light, VS::LightOmniShadowMode p_mode) {} void light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) {}
void light_directional_set_shadow_mode(RID p_light, VS::LightDirectionalShadowMode p_mode) {} void light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) {}
void light_directional_set_blend_splits(RID p_light, bool p_enable) {} void light_directional_set_blend_splits(RID p_light, bool p_enable) {}
bool light_directional_get_blend_splits(RID p_light) const { return false; } bool light_directional_get_blend_splits(RID p_light) const { return false; }
void light_directional_set_shadow_depth_range_mode(RID p_light, VS::LightDirectionalShadowDepthRangeMode p_range_mode) {} void light_directional_set_shadow_depth_range_mode(RID p_light, RS::LightDirectionalShadowDepthRangeMode p_range_mode) {}
VS::LightDirectionalShadowDepthRangeMode light_directional_get_shadow_depth_range_mode(RID p_light) const { return VS::LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE; } RS::LightDirectionalShadowDepthRangeMode light_directional_get_shadow_depth_range_mode(RID p_light) const { return RS::LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE; }
VS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) { return VS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; } RS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) { return RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; }
VS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) { return VS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; } RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) { return RS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; }
bool light_has_shadow(RID p_light) const { return false; } bool light_has_shadow(RID p_light) const { return false; }
VS::LightType light_get_type(RID p_light) const { return VS::LIGHT_OMNI; } RS::LightType light_get_type(RID p_light) const { return RS::LIGHT_OMNI; }
AABB light_get_aabb(RID p_light) const { return AABB(); } AABB light_get_aabb(RID p_light) const { return AABB(); }
float light_get_param(RID p_light, VS::LightParam p_param) { return 0.0; } float light_get_param(RID p_light, RS::LightParam p_param) { return 0.0; }
Color light_get_color(RID p_light) { return Color(); } Color light_get_color(RID p_light) { return Color(); }
bool light_get_use_gi(RID p_light) { return false; } bool light_get_use_gi(RID p_light) { return false; }
uint64_t light_get_version(RID p_light) const { return 0; } uint64_t light_get_version(RID p_light) const { return 0; }
@ -583,7 +583,7 @@ public:
RID reflection_probe_create() { return RID(); } RID reflection_probe_create() { return RID(); }
void reflection_probe_set_update_mode(RID p_probe, VS::ReflectionProbeUpdateMode p_mode) {} void reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) {}
void reflection_probe_set_intensity(RID p_probe, float p_intensity) {} void reflection_probe_set_intensity(RID p_probe, float p_intensity) {}
void reflection_probe_set_interior_ambient(RID p_probe, const Color &p_ambient) {} void reflection_probe_set_interior_ambient(RID p_probe, const Color &p_ambient) {}
void reflection_probe_set_interior_ambient_energy(RID p_probe, float p_energy) {} void reflection_probe_set_interior_ambient_energy(RID p_probe, float p_energy) {}
@ -598,7 +598,7 @@ public:
void reflection_probe_set_resolution(RID p_probe, int p_resolution) {} void reflection_probe_set_resolution(RID p_probe, int p_resolution) {}
AABB reflection_probe_get_aabb(RID p_probe) const { return AABB(); } AABB reflection_probe_get_aabb(RID p_probe) const { return AABB(); }
VS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const { return VisualServer::REFLECTION_PROBE_UPDATE_ONCE; } RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const { return RenderingServer::REFLECTION_PROBE_UPDATE_ONCE; }
uint32_t reflection_probe_get_cull_mask(RID p_probe) const { return 0; } uint32_t reflection_probe_get_cull_mask(RID p_probe) const { return 0; }
Vector3 reflection_probe_get_extents(RID p_probe) const { return Vector3(); } Vector3 reflection_probe_get_extents(RID p_probe) const { return Vector3(); }
Vector3 reflection_probe_get_origin_offset(RID p_probe) const { return Vector3(); } Vector3 reflection_probe_get_origin_offset(RID p_probe) const { return Vector3(); }
@ -742,7 +742,7 @@ public:
void particles_set_fractional_delta(RID p_particles, bool p_enable) {} void particles_set_fractional_delta(RID p_particles, bool p_enable) {}
void particles_restart(RID p_particles) {} void particles_restart(RID p_particles) {}
void particles_set_draw_order(RID p_particles, VS::ParticlesDrawOrder p_order) {} void particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) {}
void particles_set_draw_passes(RID p_particles, int p_count) {} void particles_set_draw_passes(RID p_particles, int p_count) {}
void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) {} void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) {}
@ -776,12 +776,12 @@ public:
virtual void render_target_disable_clear_request(RID p_render_target) {} virtual void render_target_disable_clear_request(RID p_render_target) {}
virtual void render_target_do_clear_request(RID p_render_target) {} virtual void render_target_do_clear_request(RID p_render_target) {}
VS::InstanceType get_base_type(RID p_rid) const { RS::InstanceType get_base_type(RID p_rid) const {
if (mesh_owner.owns(p_rid)) { if (mesh_owner.owns(p_rid)) {
return VS::INSTANCE_MESH; return RS::INSTANCE_MESH;
} }
return VS::INSTANCE_NONE; return RS::INSTANCE_NONE;
} }
bool free(RID p_rid) { bool free(RID p_rid) {
@ -803,9 +803,9 @@ public:
void render_info_begin_capture() {} void render_info_begin_capture() {}
void render_info_end_capture() {} void render_info_end_capture() {}
int get_captured_render_info(VS::RenderInfo p_info) { return 0; } int get_captured_render_info(RS::RenderInfo p_info) { return 0; }
int get_render_info(VS::RenderInfo p_info) { return 0; } int get_render_info(RS::RenderInfo p_info) { return 0; }
String get_video_adapter_name() const { return String(); } String get_video_adapter_name() const { return String(); }
String get_video_adapter_vendor() const { return String(); } String get_video_adapter_vendor() const { return String(); }
@ -825,7 +825,7 @@ public:
class RasterizerCanvasDummy : public RasterizerCanvas { class RasterizerCanvasDummy : public RasterizerCanvas {
public: public:
virtual TextureBindingID request_texture_binding(RID p_texture, RID p_normalmap, RID p_specular, VS::CanvasItemTextureFilter p_filter, VS::CanvasItemTextureRepeat p_repeat, RID p_multimesh) { return 0; } virtual TextureBindingID request_texture_binding(RID p_texture, RID p_normalmap, RID p_specular, RS::CanvasItemTextureFilter p_filter, RS::CanvasItemTextureRepeat p_repeat, RID p_multimesh) { return 0; }
virtual void free_texture_binding(TextureBindingID p_binding) {} virtual void free_texture_binding(TextureBindingID p_binding) {}
virtual PolygonID request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs = Vector<Point2>(), const Vector<int> &p_bones = Vector<int>(), const Vector<float> &p_weights = Vector<float>()) { return 0; } virtual PolygonID request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs = Vector<Point2>(), const Vector<int> &p_bones = Vector<int>(), const Vector<float> &p_weights = Vector<float>()) { return 0; }
@ -841,7 +841,7 @@ public:
virtual RID occluder_polygon_create() { return RID(); } virtual RID occluder_polygon_create() { return RID(); }
virtual void occluder_polygon_set_shape_as_lines(RID p_occluder, const Vector<Vector2> &p_lines) {} virtual void occluder_polygon_set_shape_as_lines(RID p_occluder, const Vector<Vector2> &p_lines) {}
virtual void occluder_polygon_set_cull_mode(RID p_occluder, VS::CanvasOccluderPolygonCullMode p_mode) {} virtual void occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) {}
void draw_window_margins(int *p_margins, RID *p_margin_textures) {} void draw_window_margins(int *p_margins, RID *p_margin_textures) {}

View File

@ -33,7 +33,7 @@
#include "core/os/os.h" #include "core/os/os.h"
#include "core/project_settings.h" #include "core/project_settings.h"
#include "rasterizer_scene_gles2.h" #include "rasterizer_scene_gles2.h"
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#ifndef GLES_OVER_GL #ifndef GLES_OVER_GL
#define glClearDepth glClearDepthf #define glClearDepth glClearDepthf
@ -85,7 +85,7 @@ void RasterizerCanvasGLES2::_set_uniforms() {
state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_COLOR, light->color * light->energy); state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_COLOR, light->color * light->energy);
state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_POS, light->light_shader_pos); state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_POS, light->light_shader_pos);
state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_HEIGHT, light->height); state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_HEIGHT, light->height);
state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_OUTSIDE_ALPHA, light->mode == VS::CANVAS_LIGHT_MODE_MASK ? 1.0 : 0.0); state.canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_OUTSIDE_ALPHA, light->mode == RS::CANVAS_LIGHT_MODE_MASK ? 1.0 : 0.0);
if (state.using_shadow) { if (state.using_shadow) {
RasterizerStorageGLES2::CanvasLightShadow *cls = storage->canvas_light_shadow_owner.getornull(light->shadow_buffer); RasterizerStorageGLES2::CanvasLightShadow *cls = storage->canvas_light_shadow_owner.getornull(light->shadow_buffer);
@ -152,8 +152,8 @@ void RasterizerCanvasGLES2::canvas_begin() {
glActiveTexture(GL_TEXTURE0); glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, storage->resources.white_tex); glBindTexture(GL_TEXTURE_2D, storage->resources.white_tex);
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
// set up default uniforms // set up default uniforms
@ -188,7 +188,7 @@ void RasterizerCanvasGLES2::canvas_end() {
glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0);
for (int i = 0; i < VS::ARRAY_MAX; i++) { for (int i = 0; i < RS::ARRAY_MAX; i++) {
glDisableVertexAttribArray(i); glDisableVertexAttribArray(i);
} }
@ -224,7 +224,7 @@ RasterizerStorageGLES2::Texture *RasterizerCanvasGLES2::_bind_canvas_texture(con
} else { } else {
if (texture->redraw_if_visible) { if (texture->redraw_if_visible) {
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
texture = texture->get_ptr(); texture = texture->get_ptr();
@ -266,7 +266,7 @@ RasterizerStorageGLES2::Texture *RasterizerCanvasGLES2::_bind_canvas_texture(con
} else { } else {
if (normal_map->redraw_if_visible) { //check before proxy, because this is usually used with proxies if (normal_map->redraw_if_visible) { //check before proxy, because this is usually used with proxies
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
normal_map = normal_map->get_ptr(); normal_map = normal_map->get_ptr();
@ -299,47 +299,47 @@ void RasterizerCanvasGLES2::_draw_polygon(const int *p_indices, int p_index_coun
uint32_t buffer_ofs = 0; uint32_t buffer_ofs = 0;
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vector2) * p_vertex_count, p_vertices); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vector2) * p_vertex_count, p_vertices);
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), NULL); glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), NULL);
buffer_ofs += sizeof(Vector2) * p_vertex_count; buffer_ofs += sizeof(Vector2) * p_vertex_count;
if (p_singlecolor) { if (p_singlecolor) {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
Color m = *p_colors; Color m = *p_colors;
glVertexAttrib4f(VS::ARRAY_COLOR, m.r, m.g, m.b, m.a); glVertexAttrib4f(RS::ARRAY_COLOR, m.r, m.g, m.b, m.a);
} else if (!p_colors) { } else if (!p_colors) {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} else { } else {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Color) * p_vertex_count, p_colors); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Color) * p_vertex_count, p_colors);
glEnableVertexAttribArray(VS::ARRAY_COLOR); glEnableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttribPointer(VS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(Color) * p_vertex_count; buffer_ofs += sizeof(Color) * p_vertex_count;
} }
if (p_uvs) { if (p_uvs) {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Vector2) * p_vertex_count, p_uvs); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Vector2) * p_vertex_count, p_uvs);
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
glVertexAttribPointer(VS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(Vector2) * p_vertex_count; buffer_ofs += sizeof(Vector2) * p_vertex_count;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_TEX_UV); glDisableVertexAttribArray(RS::ARRAY_TEX_UV);
} }
if (p_weights && p_bones) { if (p_weights && p_bones) {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(float) * 4 * p_vertex_count, p_weights); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(float) * 4 * p_vertex_count, p_weights);
glEnableVertexAttribArray(VS::ARRAY_WEIGHTS); glEnableVertexAttribArray(RS::ARRAY_WEIGHTS);
glVertexAttribPointer(VS::ARRAY_WEIGHTS, 4, GL_FLOAT, GL_FALSE, sizeof(float) * 4, CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_WEIGHTS, 4, GL_FLOAT, GL_FALSE, sizeof(float) * 4, CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(float) * 4 * p_vertex_count; buffer_ofs += sizeof(float) * 4 * p_vertex_count;
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(int) * 4 * p_vertex_count, p_bones); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(int) * 4 * p_vertex_count, p_bones);
glEnableVertexAttribArray(VS::ARRAY_BONES); glEnableVertexAttribArray(RS::ARRAY_BONES);
glVertexAttribPointer(VS::ARRAY_BONES, 4, GL_UNSIGNED_INT, GL_FALSE, sizeof(int) * 4, CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_BONES, 4, GL_UNSIGNED_INT, GL_FALSE, sizeof(int) * 4, CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(int) * 4 * p_vertex_count; buffer_ofs += sizeof(int) * 4 * p_vertex_count;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_WEIGHTS); glDisableVertexAttribArray(RS::ARRAY_WEIGHTS);
glDisableVertexAttribArray(VS::ARRAY_BONES); glDisableVertexAttribArray(RS::ARRAY_BONES);
} }
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.polygon_index_buffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.polygon_index_buffer);
@ -375,30 +375,30 @@ void RasterizerCanvasGLES2::_draw_generic(GLuint p_primitive, int p_vertex_count
uint32_t buffer_ofs = 0; uint32_t buffer_ofs = 0;
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vector2) * p_vertex_count, p_vertices); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vector2) * p_vertex_count, p_vertices);
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), NULL); glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), NULL);
buffer_ofs += sizeof(Vector2) * p_vertex_count; buffer_ofs += sizeof(Vector2) * p_vertex_count;
if (p_singlecolor) { if (p_singlecolor) {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
Color m = *p_colors; Color m = *p_colors;
glVertexAttrib4f(VS::ARRAY_COLOR, m.r, m.g, m.b, m.a); glVertexAttrib4f(RS::ARRAY_COLOR, m.r, m.g, m.b, m.a);
} else if (!p_colors) { } else if (!p_colors) {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} else { } else {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Color) * p_vertex_count, p_colors); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Color) * p_vertex_count, p_colors);
glEnableVertexAttribArray(VS::ARRAY_COLOR); glEnableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttribPointer(VS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(Color) * p_vertex_count; buffer_ofs += sizeof(Color) * p_vertex_count;
} }
if (p_uvs) { if (p_uvs) {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Vector2) * p_vertex_count, p_uvs); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Vector2) * p_vertex_count, p_uvs);
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
glVertexAttribPointer(VS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buffer_ofs));
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_TEX_UV); glDisableVertexAttribArray(RS::ARRAY_TEX_UV);
} }
glDrawArrays(p_primitive, 0, p_vertex_count); glDrawArrays(p_primitive, 0, p_vertex_count);
@ -417,31 +417,31 @@ void RasterizerCanvasGLES2::_draw_generic_indices(GLuint p_primitive, const int
uint32_t buffer_ofs = 0; uint32_t buffer_ofs = 0;
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vector2) * p_vertex_count, p_vertices); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vector2) * p_vertex_count, p_vertices);
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), NULL); glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), NULL);
buffer_ofs += sizeof(Vector2) * p_vertex_count; buffer_ofs += sizeof(Vector2) * p_vertex_count;
if (p_singlecolor) { if (p_singlecolor) {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
Color m = *p_colors; Color m = *p_colors;
glVertexAttrib4f(VS::ARRAY_COLOR, m.r, m.g, m.b, m.a); glVertexAttrib4f(RS::ARRAY_COLOR, m.r, m.g, m.b, m.a);
} else if (!p_colors) { } else if (!p_colors) {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} else { } else {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Color) * p_vertex_count, p_colors); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Color) * p_vertex_count, p_colors);
glEnableVertexAttribArray(VS::ARRAY_COLOR); glEnableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttribPointer(VS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(Color) * p_vertex_count; buffer_ofs += sizeof(Color) * p_vertex_count;
} }
if (p_uvs) { if (p_uvs) {
glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Vector2) * p_vertex_count, p_uvs); glBufferSubData(GL_ARRAY_BUFFER, buffer_ofs, sizeof(Vector2) * p_vertex_count, p_uvs);
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
glVertexAttribPointer(VS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buffer_ofs)); glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buffer_ofs));
buffer_ofs += sizeof(Vector2) * p_vertex_count; buffer_ofs += sizeof(Vector2) * p_vertex_count;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_TEX_UV); glDisableVertexAttribArray(RS::ARRAY_TEX_UV);
} }
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.polygon_index_buffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.polygon_index_buffer);
@ -514,16 +514,16 @@ void RasterizerCanvasGLES2::_draw_gui_primitive(int p_points, const Vector2 *p_v
#endif #endif
glBufferSubData(GL_ARRAY_BUFFER, 0, p_points * stride * 4 * sizeof(float), buffer_data); glBufferSubData(GL_ARRAY_BUFFER, 0, p_points * stride * 4 * sizeof(float), buffer_data);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), NULL); glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), NULL);
if (p_colors) { if (p_colors) {
glVertexAttribPointer(VS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(color_offset * sizeof(float))); glVertexAttribPointer(RS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(color_offset * sizeof(float)));
glEnableVertexAttribArray(VS::ARRAY_COLOR); glEnableVertexAttribArray(RS::ARRAY_COLOR);
} }
if (p_uvs) { if (p_uvs) {
glVertexAttribPointer(VS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(uv_offset * sizeof(float))); glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(uv_offset * sizeof(float)));
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
} }
glDrawArrays(prim[p_points], 0, p_points); glDrawArrays(prim[p_points], 0, p_points);
@ -564,8 +564,8 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
_bind_canvas_texture(RID(), RID()); _bind_canvas_texture(RID(), RID());
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttrib4fv(VS::ARRAY_COLOR, line->color.components); glVertexAttrib4fv(RS::ARRAY_COLOR, line->color.components);
state.canvas_shader.set_uniform(CanvasShaderGLES2::MODELVIEW_MATRIX, state.uniforms.modelview_matrix); state.canvas_shader.set_uniform(CanvasShaderGLES2::MODELVIEW_MATRIX, state.uniforms.modelview_matrix);
@ -616,8 +616,8 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
Item::CommandRect *r = static_cast<Item::CommandRect *>(command); Item::CommandRect *r = static_cast<Item::CommandRect *>(command);
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttrib4fv(VS::ARRAY_COLOR, r->modulate.components); glVertexAttrib4fv(RS::ARRAY_COLOR, r->modulate.components);
bool can_tile = true; bool can_tile = true;
if (r->texture.is_valid() && r->flags & CANVAS_RECT_TILE && !storage->config.support_npot_repeat_mipmap) { if (r->texture.is_valid() && r->flags & CANVAS_RECT_TILE && !storage->config.support_npot_repeat_mipmap) {
@ -696,7 +696,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
bool untile = false; bool untile = false;
if (can_tile && r->flags & CANVAS_RECT_TILE && !(texture->flags & VS::TEXTURE_FLAG_REPEAT)) { if (can_tile && r->flags & CANVAS_RECT_TILE && !(texture->flags & RS::TEXTURE_FLAG_REPEAT)) {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
untile = true; untile = true;
@ -753,7 +753,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
bool untile = false; bool untile = false;
if (can_tile && r->flags & CANVAS_RECT_TILE && !(tex->flags & VS::TEXTURE_FLAG_REPEAT)) { if (can_tile && r->flags & CANVAS_RECT_TILE && !(tex->flags & RS::TEXTURE_FLAG_REPEAT)) {
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
untile = true; untile = true;
@ -816,8 +816,8 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
state.canvas_shader.use_material((void *)p_material); state.canvas_shader.use_material((void *)p_material);
} }
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
glVertexAttrib4fv(VS::ARRAY_COLOR, np->color.components); glVertexAttrib4fv(RS::ARRAY_COLOR, np->color.components);
RasterizerStorageGLES2::Texture *tex = _bind_canvas_texture(np->texture, np->normal_map); RasterizerStorageGLES2::Texture *tex = _bind_canvas_texture(np->texture, np->normal_map);
@ -968,11 +968,11 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.ninepatch_elements); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, data.ninepatch_elements);
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), NULL); glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), NULL);
glVertexAttribPointer(VS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), CAST_INT_TO_UCHAR_PTR((sizeof(float) * 2))); glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), CAST_INT_TO_UCHAR_PTR((sizeof(float) * 2)));
glDrawElements(GL_TRIANGLES, 18 * 3 - (np->draw_center ? 0 : 6), GL_UNSIGNED_BYTE, NULL); glDrawElements(GL_TRIANGLES, 18 * 3 - (np->draw_center ? 0 : 6), GL_UNSIGNED_BYTE, NULL);
@ -1072,18 +1072,18 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id);
} }
for (int k = 0; k < VS::ARRAY_MAX - 1; k++) { for (int k = 0; k < RS::ARRAY_MAX - 1; k++) {
if (s->attribs[k].enabled) { if (s->attribs[k].enabled) {
glEnableVertexAttribArray(k); glEnableVertexAttribArray(k);
glVertexAttribPointer(s->attribs[k].index, s->attribs[k].size, s->attribs[k].type, s->attribs[k].normalized, s->attribs[k].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[k].offset)); glVertexAttribPointer(s->attribs[k].index, s->attribs[k].size, s->attribs[k].type, s->attribs[k].normalized, s->attribs[k].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[k].offset));
} else { } else {
glDisableVertexAttribArray(k); glDisableVertexAttribArray(k);
switch (k) { switch (k) {
case VS::ARRAY_NORMAL: { case RS::ARRAY_NORMAL: {
glVertexAttrib4f(VS::ARRAY_NORMAL, 0.0, 0.0, 1, 1); glVertexAttrib4f(RS::ARRAY_NORMAL, 0.0, 0.0, 1, 1);
} break; } break;
case VS::ARRAY_COLOR: { case RS::ARRAY_COLOR: {
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} break; } break;
default: { default: {
@ -1099,7 +1099,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
} }
} }
for (int j = 1; j < VS::ARRAY_MAX - 1; j++) { for (int j = 1; j < RS::ARRAY_MAX - 1; j++) {
glDisableVertexAttribArray(j); glDisableVertexAttribArray(j);
} }
} }
@ -1118,7 +1118,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
if (!mesh_data) if (!mesh_data)
break; break;
state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_INSTANCE_CUSTOM, multi_mesh->custom_data_format != VS::MULTIMESH_CUSTOM_DATA_NONE); state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_INSTANCE_CUSTOM, multi_mesh->custom_data_format != RS::MULTIMESH_CUSTOM_DATA_NONE);
state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_INSTANCING, true); state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_INSTANCING, true);
state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_TEXTURE_RECT, false); state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_TEXTURE_RECT, false);
@ -1162,18 +1162,18 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id);
} }
for (int k = 0; k < VS::ARRAY_MAX - 1; k++) { for (int k = 0; k < RS::ARRAY_MAX - 1; k++) {
if (s->attribs[k].enabled) { if (s->attribs[k].enabled) {
glEnableVertexAttribArray(k); glEnableVertexAttribArray(k);
glVertexAttribPointer(s->attribs[k].index, s->attribs[k].size, s->attribs[k].type, s->attribs[k].normalized, s->attribs[k].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[k].offset)); glVertexAttribPointer(s->attribs[k].index, s->attribs[k].size, s->attribs[k].type, s->attribs[k].normalized, s->attribs[k].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[k].offset));
} else { } else {
glDisableVertexAttribArray(k); glDisableVertexAttribArray(k);
switch (k) { switch (k) {
case VS::ARRAY_NORMAL: { case RS::ARRAY_NORMAL: {
glVertexAttrib4f(VS::ARRAY_NORMAL, 0.0, 0.0, 1, 1); glVertexAttrib4f(RS::ARRAY_NORMAL, 0.0, 0.0, 1, 1);
} break; } break;
case VS::ARRAY_COLOR: { case RS::ARRAY_COLOR: {
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} break; } break;
default: { default: {
@ -1189,7 +1189,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 0, &buffer[0]); glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 0, &buffer[0]);
glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 1, &buffer[4]); glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 1, &buffer[4]);
if (multi_mesh->transform_format == VS::MULTIMESH_TRANSFORM_3D) { if (multi_mesh->transform_format == RS::MULTIMESH_TRANSFORM_3D) {
glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 2, &buffer[8]); glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 2, &buffer[8]);
} else { } else {
glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 2, 0.0, 0.0, 1.0, 0.0); glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 2, 0.0, 0.0, 1.0, 0.0);
@ -1197,7 +1197,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
} }
if (multi_mesh->color_floats) { if (multi_mesh->color_floats) {
if (multi_mesh->color_format == VS::MULTIMESH_COLOR_8BIT) { if (multi_mesh->color_format == RS::MULTIMESH_COLOR_8BIT) {
uint8_t *color_data = (uint8_t *)(buffer + color_ofs); uint8_t *color_data = (uint8_t *)(buffer + color_ofs);
glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 3, color_data[0] / 255.0, color_data[1] / 255.0, color_data[2] / 255.0, color_data[3] / 255.0); glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 3, color_data[0] / 255.0, color_data[1] / 255.0, color_data[2] / 255.0, color_data[3] / 255.0);
} else { } else {
@ -1208,7 +1208,7 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
} }
if (multi_mesh->custom_data_floats) { if (multi_mesh->custom_data_floats) {
if (multi_mesh->custom_data_format == VS::MULTIMESH_CUSTOM_DATA_8BIT) { if (multi_mesh->custom_data_format == RS::MULTIMESH_CUSTOM_DATA_8BIT) {
uint8_t *custom_data = (uint8_t *)(buffer + custom_data_ofs); uint8_t *custom_data = (uint8_t *)(buffer + custom_data_ofs);
glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 4, custom_data[0] / 255.0, custom_data[1] / 255.0, custom_data[2] / 255.0, custom_data[3] / 255.0); glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 4, custom_data[0] / 255.0, custom_data[1] / 255.0, custom_data[2] / 255.0, custom_data[3] / 255.0);
} else { } else {
@ -1301,9 +1301,9 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur
if (primitive->colors.size() == 1 && primitive->points.size() > 1) { if (primitive->colors.size() == 1 && primitive->points.size() > 1) {
Color c = primitive->colors[0]; Color c = primitive->colors[0];
glVertexAttrib4f(VS::ARRAY_COLOR, c.r, c.g, c.b, c.a); glVertexAttrib4f(RS::ARRAY_COLOR, c.r, c.g, c.b, c.a);
} else if (primitive->colors.empty()) { } else if (primitive->colors.empty()) {
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} }
_draw_gui_primitive(primitive->points.size(), primitive->points.ptr(), primitive->colors.ptr(), primitive->uvs.ptr()); _draw_gui_primitive(primitive->points.size(), primitive->points.ptr(), primitive->colors.ptr(), primitive->uvs.ptr());
@ -1518,7 +1518,7 @@ void RasterizerCanvasGLES2::canvas_render_items(Item *p_item_list, int p_z, cons
if (material_ptr) { if (material_ptr) {
shader_ptr = material_ptr->shader; shader_ptr = material_ptr->shader;
if (shader_ptr && shader_ptr->mode != VS::SHADER_CANVAS_ITEM) { if (shader_ptr && shader_ptr->mode != RS::SHADER_CANVAS_ITEM) {
shader_ptr = NULL; // not a canvas item shader, don't use. shader_ptr = NULL; // not a canvas item shader, don't use.
} }
} }
@ -1542,7 +1542,7 @@ void RasterizerCanvasGLES2::canvas_render_items(Item *p_item_list, int p_z, cons
if (shader_ptr != shader_cache) { if (shader_ptr != shader_cache) {
if (shader_ptr->canvas_item.uses_time) { if (shader_ptr->canvas_item.uses_time) {
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
state.canvas_shader.set_custom_shader(shader_ptr->custom_code_id); state.canvas_shader.set_custom_shader(shader_ptr->custom_code_id);
@ -1582,7 +1582,7 @@ void RasterizerCanvasGLES2::canvas_render_items(Item *p_item_list, int p_z, cons
} }
if (t->redraw_if_visible) { if (t->redraw_if_visible) {
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
t = t->get_ptr(); t = t->get_ptr();
@ -1682,7 +1682,7 @@ void RasterizerCanvasGLES2::canvas_render_items(Item *p_item_list, int p_z, cons
Light *light = p_light; Light *light = p_light;
bool light_used = false; bool light_used = false;
VS::CanvasLightMode mode = VS::CANVAS_LIGHT_MODE_ADD; RS::CanvasLightMode mode = RS::CANVAS_LIGHT_MODE_ADD;
state.uniforms.final_modulate = ci->final_modulate; // remove the canvas modulate state.uniforms.final_modulate = ci->final_modulate; // remove the canvas modulate
while (light) { while (light) {
@ -1697,17 +1697,17 @@ void RasterizerCanvasGLES2::canvas_render_items(Item *p_item_list, int p_z, cons
switch (mode) { switch (mode) {
case VS::CANVAS_LIGHT_MODE_ADD: { case RS::CANVAS_LIGHT_MODE_ADD: {
glBlendEquation(GL_FUNC_ADD); glBlendEquation(GL_FUNC_ADD);
glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendFunc(GL_SRC_ALPHA, GL_ONE);
} break; } break;
case VS::CANVAS_LIGHT_MODE_SUB: { case RS::CANVAS_LIGHT_MODE_SUB: {
glBlendEquation(GL_FUNC_REVERSE_SUBTRACT); glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendFunc(GL_SRC_ALPHA, GL_ONE);
} break; } break;
case VS::CANVAS_LIGHT_MODE_MIX: case RS::CANVAS_LIGHT_MODE_MIX:
case VS::CANVAS_LIGHT_MODE_MASK: { case RS::CANVAS_LIGHT_MODE_MASK: {
glBlendEquation(GL_FUNC_ADD); glBlendEquation(GL_FUNC_ADD);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@ -1726,12 +1726,12 @@ void RasterizerCanvasGLES2::canvas_render_items(Item *p_item_list, int p_z, cons
state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_SHADOWS, has_shadow); state.canvas_shader.set_conditional(CanvasShaderGLES2::USE_SHADOWS, has_shadow);
if (has_shadow) { if (has_shadow) {
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_USE_GRADIENT, light->shadow_gradient_length > 0); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_USE_GRADIENT, light->shadow_gradient_length > 0);
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_NEAREST, light->shadow_filter == VS::CANVAS_LIGHT_FILTER_NONE); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_NEAREST, light->shadow_filter == RS::CANVAS_LIGHT_FILTER_NONE);
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF3, light->shadow_filter == VS::CANVAS_LIGHT_FILTER_PCF3); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF3, light->shadow_filter == RS::CANVAS_LIGHT_FILTER_PCF3);
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF5, light->shadow_filter == VS::CANVAS_LIGHT_FILTER_PCF5); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF5, light->shadow_filter == RS::CANVAS_LIGHT_FILTER_PCF5);
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF7, light->shadow_filter == VS::CANVAS_LIGHT_FILTER_PCF7); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF7, light->shadow_filter == RS::CANVAS_LIGHT_FILTER_PCF7);
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF9, light->shadow_filter == VS::CANVAS_LIGHT_FILTER_PCF9); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF9, light->shadow_filter == RS::CANVAS_LIGHT_FILTER_PCF9);
state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF13, light->shadow_filter == VS::CANVAS_LIGHT_FILTER_PCF13); state.canvas_shader.set_conditional(CanvasShaderGLES2::SHADOW_FILTER_PCF13, light->shadow_filter == RS::CANVAS_LIGHT_FILTER_PCF13);
} }
state.canvas_shader.bind(); state.canvas_shader.bind();
@ -1846,7 +1846,7 @@ void RasterizerCanvasGLES2::canvas_light_shadow_buffer_update(RID p_buffer, cons
glClearColor(1, 1, 1, 1); glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
VS::CanvasOccluderPolygonCullMode cull = VS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; RS::CanvasOccluderPolygonCullMode cull = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED;
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
@ -1903,31 +1903,31 @@ void RasterizerCanvasGLES2::canvas_light_shadow_buffer_update(RID p_buffer, cons
state.canvas_shadow_shader.set_uniform(CanvasShadowShaderGLES2::WORLD_MATRIX, instance->xform_cache); state.canvas_shadow_shader.set_uniform(CanvasShadowShaderGLES2::WORLD_MATRIX, instance->xform_cache);
VS::CanvasOccluderPolygonCullMode transformed_cull_cache = instance->cull_cache; RS::CanvasOccluderPolygonCullMode transformed_cull_cache = instance->cull_cache;
if (transformed_cull_cache != VS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED && if (transformed_cull_cache != RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED &&
(p_light_xform.basis_determinant() * instance->xform_cache.basis_determinant()) < 0) { (p_light_xform.basis_determinant() * instance->xform_cache.basis_determinant()) < 0) {
transformed_cull_cache = transformed_cull_cache =
transformed_cull_cache == VS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ? transformed_cull_cache == RS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ?
VS::CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE : RS::CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE :
VS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE; RS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE;
} }
if (cull != transformed_cull_cache) { if (cull != transformed_cull_cache) {
cull = transformed_cull_cache; cull = transformed_cull_cache;
switch (cull) { switch (cull) {
case VS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED: { case RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED: {
glDisable(GL_CULL_FACE); glDisable(GL_CULL_FACE);
} break; } break;
case VS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE: { case RS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE: {
glEnable(GL_CULL_FACE); glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT); glCullFace(GL_FRONT);
} break; } break;
case VS::CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE: { case RS::CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE: {
glEnable(GL_CULL_FACE); glEnable(GL_CULL_FACE);
glCullFace(GL_BACK); glCullFace(GL_BACK);
@ -1937,8 +1937,8 @@ void RasterizerCanvasGLES2::canvas_light_shadow_buffer_update(RID p_buffer, cons
} }
glBindBuffer(GL_ARRAY_BUFFER, cc->vertex_id); glBindBuffer(GL_ARRAY_BUFFER, cc->vertex_id);
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glVertexAttribPointer(VS::ARRAY_VERTEX, 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(RS::ARRAY_VERTEX, 3, GL_FLOAT, false, 0, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cc->index_id); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cc->index_id);
glDrawElements(GL_TRIANGLES, cc->len * 3, GL_UNSIGNED_SHORT, 0); glDrawElements(GL_TRIANGLES, cc->len * 3, GL_UNSIGNED_SHORT, 0);
@ -1979,8 +1979,8 @@ void RasterizerCanvasGLES2::reset_canvas() {
void RasterizerCanvasGLES2::_bind_quad_buffer() { void RasterizerCanvasGLES2::_bind_quad_buffer() {
glBindBuffer(GL_ARRAY_BUFFER, data.canvas_quad_vertices); glBindBuffer(GL_ARRAY_BUFFER, data.canvas_quad_vertices);
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glVertexAttribPointer(VS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, 0, NULL); glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, 0, NULL);
} }
void RasterizerCanvasGLES2::draw_generic_textured_rect(const Rect2 &p_rect, const Rect2 &p_src) { void RasterizerCanvasGLES2::draw_generic_textured_rect(const Rect2 &p_rect, const Rect2 &p_src) {
@ -2022,7 +2022,7 @@ void RasterizerCanvasGLES2::draw_lens_distortion_rect(const Rect2 &p_rect, float
// and cleanup // and cleanup
glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0);
for (int i = 0; i < VS::ARRAY_MAX; i++) { for (int i = 0; i < RS::ARRAY_MAX; i++) {
glDisableVertexAttribArray(i); glDisableVertexAttribArray(i);
} }
} }

View File

@ -32,7 +32,7 @@
#define RASTERIZERCANVASGLES2_H #define RASTERIZERCANVASGLES2_H
#include "rasterizer_storage_gles2.h" #include "rasterizer_storage_gles2.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
#include "shaders/canvas.glsl.gen.h" #include "shaders/canvas.glsl.gen.h"
#include "shaders/lens_distorted.glsl.gen.h" #include "shaders/lens_distorted.glsl.gen.h"

View File

@ -263,7 +263,7 @@ void RasterizerGLES2::initialize() {
#endif // GLES_OVER_GL #endif // GLES_OVER_GL
#endif // CAN_DEBUG #endif // CAN_DEBUG
print_line("OpenGL ES 2.0 Renderer: " + VisualServer::get_singleton()->get_video_adapter_name()); print_line("OpenGL ES 2.0 Renderer: " + RenderingServer::get_singleton()->get_video_adapter_name());
storage->initialize(); storage->initialize();
canvas->initialize(); canvas->initialize();
scene->initialize(); scene->initialize();
@ -359,7 +359,7 @@ void RasterizerGLES2::set_boot_image(const Ref<Image> &p_image, const Color &p_c
canvas->canvas_begin(); canvas->canvas_begin();
RID texture = storage->texture_create(); RID texture = storage->texture_create();
storage->texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), VS::TEXTURE_TYPE_2D, p_use_filter ? VS::TEXTURE_FLAG_FILTER : 0); storage->texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), RS::TEXTURE_TYPE_2D, p_use_filter ? RS::TEXTURE_FLAG_FILTER : 0);
storage->texture_set_data(texture, p_image); storage->texture_set_data(texture, p_image);
Rect2 imgrect(0, 0, p_image->get_width(), p_image->get_height()); Rect2 imgrect(0, 0, p_image->get_width(), p_image->get_height());

View File

@ -34,7 +34,7 @@
#include "rasterizer_canvas_gles2.h" #include "rasterizer_canvas_gles2.h"
#include "rasterizer_scene_gles2.h" #include "rasterizer_scene_gles2.h"
#include "rasterizer_storage_gles2.h" #include "rasterizer_storage_gles2.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
class RasterizerGLES2 : public Rasterizer { class RasterizerGLES2 : public Rasterizer {

View File

@ -37,7 +37,7 @@
#include "core/vmap.h" #include "core/vmap.h"
#include "rasterizer_canvas_gles2.h" #include "rasterizer_canvas_gles2.h"
#include "servers/camera/camera_feed.h" #include "servers/camera/camera_feed.h"
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#ifndef GLES_OVER_GL #ifndef GLES_OVER_GL
#define glClearDepth glClearDepthf #define glClearDepth glClearDepthf
@ -456,10 +456,10 @@ int RasterizerSceneGLES2::get_directional_light_shadow_size(RID p_light_intance)
ERR_FAIL_COND_V(!light_instance, 0); ERR_FAIL_COND_V(!light_instance, 0);
switch (light_instance->light_ptr->directional_shadow_mode) { switch (light_instance->light_ptr->directional_shadow_mode) {
case VS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL:
break; //none break; //none
case VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS:
case VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS:
shadow_size /= 2; shadow_size /= 2;
break; break;
} }
@ -525,7 +525,7 @@ bool RasterizerSceneGLES2::reflection_probe_instance_needs_redraw(RID p_instance
const ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance); const ReflectionProbeInstance *rpi = reflection_probe_instance_owner.getornull(p_instance);
ERR_FAIL_COND_V(!rpi, false); ERR_FAIL_COND_V(!rpi, false);
bool need_redraw = rpi->probe_ptr->resolution != rpi->current_resolution || rpi->dirty || rpi->probe_ptr->update_mode == VS::REFLECTION_PROBE_UPDATE_ALWAYS; bool need_redraw = rpi->probe_ptr->resolution != rpi->current_resolution || rpi->dirty || rpi->probe_ptr->update_mode == RS::REFLECTION_PROBE_UPDATE_ALWAYS;
rpi->dirty = false; rpi->dirty = false;
return need_redraw; return need_redraw;
} }
@ -610,7 +610,7 @@ bool RasterizerSceneGLES2::reflection_probe_instance_postprocess_step(RID p_inst
glDisable(GL_BLEND); glDisable(GL_BLEND);
glDepthMask(GL_FALSE); glDepthMask(GL_FALSE);
for (int i = 0; i < VS::ARRAY_MAX - 1; i++) { for (int i = 0; i < RS::ARRAY_MAX - 1; i++) {
glDisableVertexAttribArray(i); glDisableVertexAttribArray(i);
} }
} }
@ -690,7 +690,7 @@ RID RasterizerSceneGLES2::environment_create() {
return environment_owner.make_rid(env); return environment_owner.make_rid(env);
} }
void RasterizerSceneGLES2::environment_set_background(RID p_env, VS::EnvironmentBG p_bg) { void RasterizerSceneGLES2::environment_set_background(RID p_env, RS::EnvironmentBG p_bg) {
Environment *env = environment_owner.getornull(p_env); Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
@ -755,7 +755,7 @@ void RasterizerSceneGLES2::environment_set_camera_feed_id(RID p_env, int p_camer
env->camera_feed_id = p_camera_feed_id; env->camera_feed_id = p_camera_feed_id;
} }
void RasterizerSceneGLES2::environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality) { void RasterizerSceneGLES2::environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, RS::EnvironmentDOFBlurQuality p_quality) {
Environment *env = environment_owner.getornull(p_env); Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
@ -767,7 +767,7 @@ void RasterizerSceneGLES2::environment_set_dof_blur_far(RID p_env, bool p_enable
env->dof_blur_far_quality = p_quality; env->dof_blur_far_quality = p_quality;
} }
void RasterizerSceneGLES2::environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality) { void RasterizerSceneGLES2::environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, RS::EnvironmentDOFBlurQuality p_quality) {
Environment *env = environment_owner.getornull(p_env); Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
@ -779,7 +779,7 @@ void RasterizerSceneGLES2::environment_set_dof_blur_near(RID p_env, bool p_enabl
env->dof_blur_near_quality = p_quality; env->dof_blur_near_quality = p_quality;
} }
void RasterizerSceneGLES2::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) { void RasterizerSceneGLES2::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) {
Environment *env = environment_owner.getornull(p_env); Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
@ -806,12 +806,12 @@ void RasterizerSceneGLES2::environment_set_ssr(RID p_env, bool p_enable, int p_m
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
} }
void RasterizerSceneGLES2::environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_radius2, float p_intensity2, float p_bias, float p_light_affect, float p_ao_channel_affect, const Color &p_color, VS::EnvironmentSSAOQuality p_quality, VisualServer::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness) { void RasterizerSceneGLES2::environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_radius2, float p_intensity2, float p_bias, float p_light_affect, float p_ao_channel_affect, const Color &p_color, RS::EnvironmentSSAOQuality p_quality, RenderingServer::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness) {
Environment *env = environment_owner.getornull(p_env); Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
} }
void RasterizerSceneGLES2::environment_set_tonemap(RID p_env, VS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) { void RasterizerSceneGLES2::environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {
Environment *env = environment_owner.getornull(p_env); Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND(!env); ERR_FAIL_COND(!env);
} }
@ -866,9 +866,9 @@ bool RasterizerSceneGLES2::is_environment(RID p_env) {
return environment_owner.owns(p_env); return environment_owner.owns(p_env);
} }
VS::EnvironmentBG RasterizerSceneGLES2::environment_get_background(RID p_env) { RS::EnvironmentBG RasterizerSceneGLES2::environment_get_background(RID p_env) {
const Environment *env = environment_owner.getornull(p_env); const Environment *env = environment_owner.getornull(p_env);
ERR_FAIL_COND_V(!env, VS::ENV_BG_MAX); ERR_FAIL_COND_V(!env, RS::ENV_BG_MAX);
return env->bg_mode; return env->bg_mode;
} }
@ -914,7 +914,7 @@ void RasterizerSceneGLES2::light_instance_set_shadow_transform(RID p_light_insta
LightInstance *light_instance = light_instance_owner.getornull(p_light_instance); LightInstance *light_instance = light_instance_owner.getornull(p_light_instance);
ERR_FAIL_COND(!light_instance); ERR_FAIL_COND(!light_instance);
if (light_instance->light_ptr->type != VS::LIGHT_DIRECTIONAL) { if (light_instance->light_ptr->type != RS::LIGHT_DIRECTIONAL) {
p_pass = 0; p_pass = 0;
} }
@ -1022,7 +1022,7 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G
if (!p_material->shader->spatial.uses_alpha_scissor && !p_material->shader->spatial.writes_modelview_or_projection && !p_material->shader->spatial.uses_vertex && !p_material->shader->spatial.uses_discard && p_material->shader->spatial.depth_draw_mode != RasterizerStorageGLES2::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) { if (!p_material->shader->spatial.uses_alpha_scissor && !p_material->shader->spatial.writes_modelview_or_projection && !p_material->shader->spatial.uses_vertex && !p_material->shader->spatial.uses_discard && p_material->shader->spatial.depth_draw_mode != RasterizerStorageGLES2::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) {
//shader does not use discard and does not write a vertex position, use generic material //shader does not use discard and does not write a vertex position, use generic material
if (p_instance->cast_shadows == VS::SHADOW_CASTING_SETTING_DOUBLE_SIDED) { if (p_instance->cast_shadows == RS::SHADOW_CASTING_SETTING_DOUBLE_SIDED) {
p_material = storage->material_owner.getornull(!p_shadow_pass && p_material->shader->spatial.uses_world_coordinates ? default_worldcoord_material_twosided : default_material_twosided); p_material = storage->material_owner.getornull(!p_shadow_pass && p_material->shader->spatial.uses_world_coordinates ? default_worldcoord_material_twosided : default_material_twosided);
mirror = false; mirror = false;
} else { } else {
@ -1048,7 +1048,7 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G
e->use_accum = false; e->use_accum = false;
e->light_index = RenderList::MAX_LIGHTS; e->light_index = RenderList::MAX_LIGHTS;
e->use_accum_ptr = &e->use_accum; e->use_accum_ptr = &e->use_accum;
e->instancing = (e->instance->base_type == VS::INSTANCE_MULTIMESH) ? 1 : 0; e->instancing = (e->instance->base_type == RS::INSTANCE_MULTIMESH) ? 1 : 0;
e->front_facing = false; e->front_facing = false;
if (e->geometry->last_pass != render_pass) { if (e->geometry->last_pass != render_pass) {
@ -1162,7 +1162,7 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G
//directional sort key //directional sort key
e->light_type1 = 1; e->light_type1 = 1;
e->light_type2 = li->light_ptr->type == VisualServer::LIGHT_OMNI ? 0 : 1; e->light_type2 = li->light_ptr->type == RenderingServer::LIGHT_OMNI ? 0 : 1;
e->light_index = li->light_index; e->light_index = li->light_index;
copy = true; copy = true;
@ -1181,7 +1181,7 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G
// do not add anything here, as lights are duplicated elements.. // do not add anything here, as lights are duplicated elements..
if (p_material->shader->spatial.uses_time) { if (p_material->shader->spatial.uses_time) {
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
} }
@ -1224,7 +1224,7 @@ void RasterizerSceneGLES2::_fill_render_list(InstanceBase **p_cull_result, int p
switch (instance->base_type) { switch (instance->base_type) {
case VS::INSTANCE_MESH: { case RS::INSTANCE_MESH: {
RasterizerStorageGLES2::Mesh *mesh = storage->mesh_owner.getornull(instance->base); RasterizerStorageGLES2::Mesh *mesh = storage->mesh_owner.getornull(instance->base);
ERR_CONTINUE(!mesh); ERR_CONTINUE(!mesh);
@ -1241,7 +1241,7 @@ void RasterizerSceneGLES2::_fill_render_list(InstanceBase **p_cull_result, int p
} break; } break;
case VS::INSTANCE_MULTIMESH: { case RS::INSTANCE_MULTIMESH: {
RasterizerStorageGLES2::MultiMesh *multi_mesh = storage->multimesh_owner.getornull(instance->base); RasterizerStorageGLES2::MultiMesh *multi_mesh = storage->multimesh_owner.getornull(instance->base);
ERR_CONTINUE(!multi_mesh); ERR_CONTINUE(!multi_mesh);
@ -1260,7 +1260,7 @@ void RasterizerSceneGLES2::_fill_render_list(InstanceBase **p_cull_result, int p
} }
} break; } break;
case VS::INSTANCE_IMMEDIATE: { case RS::INSTANCE_IMMEDIATE: {
RasterizerStorageGLES2::Immediate *im = storage->immediate_owner.getornull(instance->base); RasterizerStorageGLES2::Immediate *im = storage->immediate_owner.getornull(instance->base);
ERR_CONTINUE(!im); ERR_CONTINUE(!im);
@ -1426,7 +1426,7 @@ bool RasterizerSceneGLES2::_setup_material(RasterizerStorageGLES2::Material *p_m
} }
if (t->redraw_if_visible) { //must check before proxy because this is often used with proxies if (t->redraw_if_visible) { //must check before proxy because this is often used with proxies
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
t = t->get_ptr(); t = t->get_ptr();
@ -1459,7 +1459,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
switch (p_element->instance->base_type) { switch (p_element->instance->base_type) {
case VS::INSTANCE_MESH: { case RS::INSTANCE_MESH: {
RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry); RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry);
glBindBuffer(GL_ARRAY_BUFFER, s->vertex_id); glBindBuffer(GL_ARRAY_BUFFER, s->vertex_id);
@ -1468,18 +1468,18 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id);
} }
for (int i = 0; i < VS::ARRAY_MAX - 1; i++) { for (int i = 0; i < RS::ARRAY_MAX - 1; i++) {
if (s->attribs[i].enabled) { if (s->attribs[i].enabled) {
glEnableVertexAttribArray(i); glEnableVertexAttribArray(i);
glVertexAttribPointer(s->attribs[i].index, s->attribs[i].size, s->attribs[i].type, s->attribs[i].normalized, s->attribs[i].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[i].offset)); glVertexAttribPointer(s->attribs[i].index, s->attribs[i].size, s->attribs[i].type, s->attribs[i].normalized, s->attribs[i].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[i].offset));
} else { } else {
glDisableVertexAttribArray(i); glDisableVertexAttribArray(i);
switch (i) { switch (i) {
case VS::ARRAY_NORMAL: { case RS::ARRAY_NORMAL: {
glVertexAttrib4f(VS::ARRAY_NORMAL, 0.0, 0.0, 1, 1); glVertexAttrib4f(RS::ARRAY_NORMAL, 0.0, 0.0, 1, 1);
} break; } break;
case VS::ARRAY_COLOR: { case RS::ARRAY_COLOR: {
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} break; } break;
default: { default: {
@ -1502,7 +1502,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
Vector<float> &transform_buffer = storage->resources.skeleton_transform_cpu_buffer; Vector<float> &transform_buffer = storage->resources.skeleton_transform_cpu_buffer;
if (!s->attribs[VS::ARRAY_BONES].enabled || !s->attribs[VS::ARRAY_WEIGHTS].enabled) { if (!s->attribs[RS::ARRAY_BONES].enabled || !s->attribs[RS::ARRAY_WEIGHTS].enabled) {
break; // the whole instance has a skeleton, but this surface is not affected by it. break; // the whole instance has a skeleton, but this surface is not affected by it.
} }
@ -1511,10 +1511,10 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
transform_buffer.resize(s->array_len * 12); transform_buffer.resize(s->array_len * 12);
} }
const size_t bones_offset = s->attribs[VS::ARRAY_BONES].offset; const size_t bones_offset = s->attribs[RS::ARRAY_BONES].offset;
const size_t bones_stride = s->attribs[VS::ARRAY_BONES].stride; const size_t bones_stride = s->attribs[RS::ARRAY_BONES].stride;
const size_t bone_weight_offset = s->attribs[VS::ARRAY_WEIGHTS].offset; const size_t bone_weight_offset = s->attribs[RS::ARRAY_WEIGHTS].offset;
const size_t bone_weight_stride = s->attribs[VS::ARRAY_WEIGHTS].stride; const size_t bone_weight_stride = s->attribs[RS::ARRAY_WEIGHTS].stride;
{ {
float *write = transform_buffer.ptrw(); float *write = transform_buffer.ptrw();
@ -1530,7 +1530,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
size_t bones[4]; size_t bones[4];
float bone_weight[4]; float bone_weight[4];
if (s->attribs[VS::ARRAY_BONES].type == GL_UNSIGNED_BYTE) { if (s->attribs[RS::ARRAY_BONES].type == GL_UNSIGNED_BYTE) {
// read as byte // read as byte
const uint8_t *bones_ptr = vertex_data + bones_offset + (i * bones_stride); const uint8_t *bones_ptr = vertex_data + bones_offset + (i * bones_stride);
bones[0] = bones_ptr[0]; bones[0] = bones_ptr[0];
@ -1546,7 +1546,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
bones[3] = bones_ptr[3]; bones[3] = bones_ptr[3];
} }
if (s->attribs[VS::ARRAY_WEIGHTS].type == GL_FLOAT) { if (s->attribs[RS::ARRAY_WEIGHTS].type == GL_FLOAT) {
// read as float // read as float
const float *weight_ptr = (const float *)(vertex_data + bone_weight_offset + (i * bone_weight_stride)); const float *weight_ptr = (const float *)(vertex_data + bone_weight_offset + (i * bone_weight_stride));
bone_weight[0] = weight_ptr[0]; bone_weight[0] = weight_ptr[0];
@ -1621,7 +1621,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
} break; } break;
case VS::INSTANCE_MULTIMESH: { case RS::INSTANCE_MULTIMESH: {
RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry); RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry);
glBindBuffer(GL_ARRAY_BUFFER, s->vertex_id); glBindBuffer(GL_ARRAY_BUFFER, s->vertex_id);
@ -1630,18 +1630,18 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s->index_id);
} }
for (int i = 0; i < VS::ARRAY_MAX - 1; i++) { for (int i = 0; i < RS::ARRAY_MAX - 1; i++) {
if (s->attribs[i].enabled) { if (s->attribs[i].enabled) {
glEnableVertexAttribArray(i); glEnableVertexAttribArray(i);
glVertexAttribPointer(s->attribs[i].index, s->attribs[i].size, s->attribs[i].type, s->attribs[i].normalized, s->attribs[i].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[i].offset)); glVertexAttribPointer(s->attribs[i].index, s->attribs[i].size, s->attribs[i].type, s->attribs[i].normalized, s->attribs[i].stride, CAST_INT_TO_UCHAR_PTR(s->attribs[i].offset));
} else { } else {
glDisableVertexAttribArray(i); glDisableVertexAttribArray(i);
switch (i) { switch (i) {
case VS::ARRAY_NORMAL: { case RS::ARRAY_NORMAL: {
glVertexAttrib4f(VS::ARRAY_NORMAL, 0.0, 0.0, 1, 1); glVertexAttrib4f(RS::ARRAY_NORMAL, 0.0, 0.0, 1, 1);
} break; } break;
case VS::ARRAY_COLOR: { case RS::ARRAY_COLOR: {
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
} break; } break;
default: { default: {
@ -1662,7 +1662,7 @@ void RasterizerSceneGLES2::_setup_geometry(RenderList::Element *p_element, Raste
} break; } break;
case VS::INSTANCE_IMMEDIATE: { case RS::INSTANCE_IMMEDIATE: {
} break; } break;
default: { default: {
@ -1674,7 +1674,7 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
switch (p_element->instance->base_type) { switch (p_element->instance->base_type) {
case VS::INSTANCE_MESH: { case RS::INSTANCE_MESH: {
RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry); RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry);
@ -1688,22 +1688,22 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
storage->info.render.vertices_count += s->array_len; storage->info.render.vertices_count += s->array_len;
} }
/* /*
if (p_element->instance->skeleton.is_valid() && s->attribs[VS::ARRAY_BONES].enabled && s->attribs[VS::ARRAY_WEIGHTS].enabled) { if (p_element->instance->skeleton.is_valid() && s->attribs[RS::ARRAY_BONES].enabled && s->attribs[RS::ARRAY_WEIGHTS].enabled) {
//clean up after skeleton //clean up after skeleton
glBindBuffer(GL_ARRAY_BUFFER, storage->resources.skeleton_transform_buffer); glBindBuffer(GL_ARRAY_BUFFER, storage->resources.skeleton_transform_buffer);
glDisableVertexAttribArray(VS::ARRAY_MAX + 0); glDisableVertexAttribArray(RS::ARRAY_MAX + 0);
glDisableVertexAttribArray(VS::ARRAY_MAX + 1); glDisableVertexAttribArray(RS::ARRAY_MAX + 1);
glDisableVertexAttribArray(VS::ARRAY_MAX + 2); glDisableVertexAttribArray(RS::ARRAY_MAX + 2);
glVertexAttrib4f(VS::ARRAY_MAX + 0, 1, 0, 0, 0); glVertexAttrib4f(RS::ARRAY_MAX + 0, 1, 0, 0, 0);
glVertexAttrib4f(VS::ARRAY_MAX + 1, 0, 1, 0, 0); glVertexAttrib4f(RS::ARRAY_MAX + 1, 0, 1, 0, 0);
glVertexAttrib4f(VS::ARRAY_MAX + 2, 0, 0, 1, 0); glVertexAttrib4f(RS::ARRAY_MAX + 2, 0, 0, 1, 0);
} }
*/ */
} break; } break;
case VS::INSTANCE_MULTIMESH: { case RS::INSTANCE_MULTIMESH: {
RasterizerStorageGLES2::MultiMesh *multi_mesh = static_cast<RasterizerStorageGLES2::MultiMesh *>(p_element->owner); RasterizerStorageGLES2::MultiMesh *multi_mesh = static_cast<RasterizerStorageGLES2::MultiMesh *>(p_element->owner);
RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry); RasterizerStorageGLES2::Surface *s = static_cast<RasterizerStorageGLES2::Surface *>(p_element->geometry);
@ -1734,7 +1734,7 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
} }
if (multi_mesh->color_floats) { if (multi_mesh->color_floats) {
if (multi_mesh->color_format == VS::MULTIMESH_COLOR_8BIT) { if (multi_mesh->color_format == RS::MULTIMESH_COLOR_8BIT) {
uint8_t *color_data = (uint8_t *)(buffer + color_ofs); uint8_t *color_data = (uint8_t *)(buffer + color_ofs);
glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 3, color_data[0] / 255.0, color_data[1] / 255.0, color_data[2] / 255.0, color_data[3] / 255.0); glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 3, color_data[0] / 255.0, color_data[1] / 255.0, color_data[2] / 255.0, color_data[3] / 255.0);
} else { } else {
@ -1745,7 +1745,7 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
} }
if (multi_mesh->custom_data_floats) { if (multi_mesh->custom_data_floats) {
if (multi_mesh->custom_data_format == VS::MULTIMESH_CUSTOM_DATA_8BIT) { if (multi_mesh->custom_data_format == RS::MULTIMESH_CUSTOM_DATA_8BIT) {
uint8_t *custom_data = (uint8_t *)(buffer + custom_data_ofs); uint8_t *custom_data = (uint8_t *)(buffer + custom_data_ofs);
glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 4, custom_data[0] / 255.0, custom_data[1] / 255.0, custom_data[2] / 255.0, custom_data[3] / 255.0); glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 4, custom_data[0] / 255.0, custom_data[1] / 255.0, custom_data[2] / 255.0, custom_data[3] / 255.0);
} else { } else {
@ -1764,7 +1764,7 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
} break; } break;
case VS::INSTANCE_IMMEDIATE: { case RS::INSTANCE_IMMEDIATE: {
const RasterizerStorageGLES2::Immediate *im = static_cast<const RasterizerStorageGLES2::Immediate *>(p_element->geometry); const RasterizerStorageGLES2::Immediate *im = static_cast<const RasterizerStorageGLES2::Immediate *>(p_element->geometry);
if (im->building) { if (im->building) {
@ -1792,7 +1792,7 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
RasterizerStorageGLES2::Texture *t = storage->texture_owner.getornull(c.texture); RasterizerStorageGLES2::Texture *t = storage->texture_owner.getornull(c.texture);
if (t->redraw_if_visible) { if (t->redraw_if_visible) {
VisualServerRaster::redraw_request(); RenderingServerRaster::redraw_request();
} }
t = t->get_ptr(); t = t->get_ptr();
@ -1816,53 +1816,53 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) {
} }
if (!c.normals.empty()) { if (!c.normals.empty()) {
glEnableVertexAttribArray(VS::ARRAY_NORMAL); glEnableVertexAttribArray(RS::ARRAY_NORMAL);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector3) * vertices, c.normals.ptr()); glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector3) * vertices, c.normals.ptr());
glVertexAttribPointer(VS::ARRAY_NORMAL, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3), CAST_INT_TO_UCHAR_PTR(buf_ofs)); glVertexAttribPointer(RS::ARRAY_NORMAL, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3), CAST_INT_TO_UCHAR_PTR(buf_ofs));
buf_ofs += sizeof(Vector3) * vertices; buf_ofs += sizeof(Vector3) * vertices;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_NORMAL); glDisableVertexAttribArray(RS::ARRAY_NORMAL);
} }
if (!c.tangents.empty()) { if (!c.tangents.empty()) {
glEnableVertexAttribArray(VS::ARRAY_TANGENT); glEnableVertexAttribArray(RS::ARRAY_TANGENT);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Plane) * vertices, c.tangents.ptr()); glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Plane) * vertices, c.tangents.ptr());
glVertexAttribPointer(VS::ARRAY_TANGENT, 4, GL_FLOAT, GL_FALSE, sizeof(Plane), CAST_INT_TO_UCHAR_PTR(buf_ofs)); glVertexAttribPointer(RS::ARRAY_TANGENT, 4, GL_FLOAT, GL_FALSE, sizeof(Plane), CAST_INT_TO_UCHAR_PTR(buf_ofs));
buf_ofs += sizeof(Plane) * vertices; buf_ofs += sizeof(Plane) * vertices;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_TANGENT); glDisableVertexAttribArray(RS::ARRAY_TANGENT);
} }
if (!c.colors.empty()) { if (!c.colors.empty()) {
glEnableVertexAttribArray(VS::ARRAY_COLOR); glEnableVertexAttribArray(RS::ARRAY_COLOR);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Color) * vertices, c.colors.ptr()); glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Color) * vertices, c.colors.ptr());
glVertexAttribPointer(VS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buf_ofs)); glVertexAttribPointer(RS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(Color), CAST_INT_TO_UCHAR_PTR(buf_ofs));
buf_ofs += sizeof(Color) * vertices; buf_ofs += sizeof(Color) * vertices;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_COLOR); glDisableVertexAttribArray(RS::ARRAY_COLOR);
} }
if (!c.uvs.empty()) { if (!c.uvs.empty()) {
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector2) * vertices, c.uvs.ptr()); glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector2) * vertices, c.uvs.ptr());
glVertexAttribPointer(VS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buf_ofs)); glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buf_ofs));
buf_ofs += sizeof(Vector2) * vertices; buf_ofs += sizeof(Vector2) * vertices;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_TEX_UV); glDisableVertexAttribArray(RS::ARRAY_TEX_UV);
} }
if (!c.uv2s.empty()) { if (!c.uv2s.empty()) {
glEnableVertexAttribArray(VS::ARRAY_TEX_UV2); glEnableVertexAttribArray(RS::ARRAY_TEX_UV2);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector2) * vertices, c.uv2s.ptr()); glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector2) * vertices, c.uv2s.ptr());
glVertexAttribPointer(VS::ARRAY_TEX_UV2, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buf_ofs)); glVertexAttribPointer(RS::ARRAY_TEX_UV2, 2, GL_FLOAT, GL_FALSE, sizeof(Vector2), CAST_INT_TO_UCHAR_PTR(buf_ofs));
buf_ofs += sizeof(Vector2) * vertices; buf_ofs += sizeof(Vector2) * vertices;
} else { } else {
glDisableVertexAttribArray(VS::ARRAY_TEX_UV2); glDisableVertexAttribArray(RS::ARRAY_TEX_UV2);
} }
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector3) * vertices, c.vertices.ptr()); glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector3) * vertices, c.vertices.ptr());
glVertexAttribPointer(VS::ARRAY_VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3), CAST_INT_TO_UCHAR_PTR(buf_ofs)); glVertexAttribPointer(RS::ARRAY_VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3), CAST_INT_TO_UCHAR_PTR(buf_ofs));
glDrawArrays(gl_primitive[c.primitive], 0, c.vertices.size()); glDrawArrays(gl_primitive[c.primitive], 0, c.vertices.size());
} }
@ -1901,18 +1901,18 @@ void RasterizerSceneGLES2::_setup_light_type(LightInstance *p_light, ShadowAtlas
state.scene_shader.set_conditional(SceneShaderGLES2::USE_LIGHTING, true); state.scene_shader.set_conditional(SceneShaderGLES2::USE_LIGHTING, true);
switch (p_light->light_ptr->type) { switch (p_light->light_ptr->type) {
case VS::LIGHT_DIRECTIONAL: { case RS::LIGHT_DIRECTIONAL: {
state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_MODE_DIRECTIONAL, true); state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_MODE_DIRECTIONAL, true);
switch (p_light->light_ptr->directional_shadow_mode) { switch (p_light->light_ptr->directional_shadow_mode) {
case VS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: { case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: {
//no need //no need
} break; } break;
case VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: { case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: {
state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_USE_PSSM2, true); state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_USE_PSSM2, true);
} break; } break;
case VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: { case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: {
state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_USE_PSSM4, true); state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_USE_PSSM4, true);
} break; } break;
} }
@ -1931,7 +1931,7 @@ void RasterizerSceneGLES2::_setup_light_type(LightInstance *p_light, ShadowAtlas
} }
} break; } break;
case VS::LIGHT_OMNI: { case RS::LIGHT_OMNI: {
state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_MODE_OMNI, true); state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_MODE_OMNI, true);
if (!state.render_no_shadows && shadow_atlas && p_light->light_ptr->shadow) { if (!state.render_no_shadows && shadow_atlas && p_light->light_ptr->shadow) {
@ -1946,7 +1946,7 @@ void RasterizerSceneGLES2::_setup_light_type(LightInstance *p_light, ShadowAtlas
state.scene_shader.set_conditional(SceneShaderGLES2::SHADOW_MODE_PCF_13, shadow_filter_mode == SHADOW_FILTER_PCF13); state.scene_shader.set_conditional(SceneShaderGLES2::SHADOW_MODE_PCF_13, shadow_filter_mode == SHADOW_FILTER_PCF13);
} }
} break; } break;
case VS::LIGHT_SPOT: { case RS::LIGHT_SPOT: {
state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_MODE_SPOT, true); state.scene_shader.set_conditional(SceneShaderGLES2::LIGHT_MODE_SPOT, true);
if (!state.render_no_shadows && shadow_atlas && p_light->light_ptr->shadow) { if (!state.render_no_shadows && shadow_atlas && p_light->light_ptr->shadow) {
@ -1969,8 +1969,8 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
RasterizerStorageGLES2::Light *light_ptr = light->light_ptr; RasterizerStorageGLES2::Light *light_ptr = light->light_ptr;
//common parameters //common parameters
float energy = light_ptr->param[VS::LIGHT_PARAM_ENERGY]; float energy = light_ptr->param[RS::LIGHT_PARAM_ENERGY];
float specular = light_ptr->param[VS::LIGHT_PARAM_SPECULAR]; float specular = light_ptr->param[RS::LIGHT_PARAM_SPECULAR];
float sign = (light_ptr->negative && !accum_pass) ? -1 : 1; //inverse color for base pass lights only float sign = (light_ptr->negative && !accum_pass) ? -1 : 1; //inverse color for base pass lights only
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_SPECULAR, specular); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_SPECULAR, specular);
@ -1982,7 +1982,7 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
//specific parameters //specific parameters
switch (light_ptr->type) { switch (light_ptr->type) {
case VS::LIGHT_DIRECTIONAL: { case RS::LIGHT_DIRECTIONAL: {
//not using inverse for performance, view should be normalized anyway //not using inverse for performance, view should be normalized anyway
Vector3 direction = p_view_transform.basis.xform_inv(light->transform.basis.xform(Vector3(0, 0, -1))).normalized(); Vector3 direction = p_view_transform.basis.xform_inv(light->transform.basis.xform(Vector3(0, 0, -1))).normalized();
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_DIRECTION, direction); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_DIRECTION, direction);
@ -1995,15 +1995,15 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
Color split_offsets; Color split_offsets;
switch (light_ptr->directional_shadow_mode) { switch (light_ptr->directional_shadow_mode) {
case VS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: { case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: {
shadow_count = 1; shadow_count = 1;
} break; } break;
case VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: { case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: {
shadow_count = 2; shadow_count = 2;
} break; } break;
case VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: { case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: {
shadow_count = 4; shadow_count = 4;
} break; } break;
} }
@ -2015,7 +2015,7 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
uint32_t width = light->directional_rect.size.x; uint32_t width = light->directional_rect.size.x;
uint32_t height = light->directional_rect.size.y; uint32_t height = light->directional_rect.size.y;
if (light_ptr->directional_shadow_mode == VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { if (light_ptr->directional_shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) {
width /= 2; width /= 2;
height /= 2; height /= 2;
@ -2029,7 +2029,7 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
y += height; y += height;
} }
} else if (light_ptr->directional_shadow_mode == VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { } else if (light_ptr->directional_shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) {
height /= 2; height /= 2;
@ -2067,16 +2067,16 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_SHADOW_MATRIX4, matrices[3]); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_SHADOW_MATRIX4, matrices[3]);
} }
} break; } break;
case VS::LIGHT_OMNI: { case RS::LIGHT_OMNI: {
Vector3 position = p_view_transform.xform_inv(light->transform.origin); Vector3 position = p_view_transform.xform_inv(light->transform.origin);
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_POSITION, position); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_POSITION, position);
float range = light_ptr->param[VS::LIGHT_PARAM_RANGE]; float range = light_ptr->param[RS::LIGHT_PARAM_RANGE];
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_RANGE, range); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_RANGE, range);
float attenuation = light_ptr->param[VS::LIGHT_PARAM_ATTENUATION]; float attenuation = light_ptr->param[RS::LIGHT_PARAM_ATTENUATION];
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_ATTENUATION, attenuation); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_ATTENUATION, attenuation);
if (!state.render_no_shadows && light_ptr->shadow && shadow_atlas && shadow_atlas->shadow_owners.has(light->self)) { if (!state.render_no_shadows && light_ptr->shadow && shadow_atlas && shadow_atlas->shadow_owners.has(light->self)) {
@ -2101,7 +2101,7 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
uint32_t width = shadow_size; uint32_t width = shadow_size;
uint32_t height = shadow_size; uint32_t height = shadow_size;
if (light->light_ptr->omni_shadow_detail == VS::LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL) { if (light->light_ptr->omni_shadow_detail == RS::LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL) {
height /= 2; height /= 2;
} else { } else {
width /= 2; width /= 2;
@ -2121,7 +2121,7 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
} }
} break; } break;
case VS::LIGHT_SPOT: { case RS::LIGHT_SPOT: {
Vector3 position = p_view_transform.xform_inv(light->transform.origin); Vector3 position = p_view_transform.xform_inv(light->transform.origin);
@ -2129,10 +2129,10 @@ void RasterizerSceneGLES2::_setup_light(LightInstance *light, ShadowAtlas *shado
Vector3 direction = p_view_transform.inverse().basis.xform(light->transform.basis.xform(Vector3(0, 0, -1))).normalized(); Vector3 direction = p_view_transform.inverse().basis.xform(light->transform.basis.xform(Vector3(0, 0, -1))).normalized();
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_DIRECTION, direction); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_DIRECTION, direction);
float attenuation = light_ptr->param[VS::LIGHT_PARAM_ATTENUATION]; float attenuation = light_ptr->param[RS::LIGHT_PARAM_ATTENUATION];
float range = light_ptr->param[VS::LIGHT_PARAM_RANGE]; float range = light_ptr->param[RS::LIGHT_PARAM_RANGE];
float spot_attenuation = light_ptr->param[VS::LIGHT_PARAM_SPOT_ATTENUATION]; float spot_attenuation = light_ptr->param[RS::LIGHT_PARAM_SPOT_ATTENUATION];
float angle = light_ptr->param[VS::LIGHT_PARAM_SPOT_ANGLE]; float angle = light_ptr->param[RS::LIGHT_PARAM_SPOT_ANGLE];
angle = Math::cos(Math::deg2rad(angle)); angle = Math::cos(Math::deg2rad(angle));
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_ATTENUATION, attenuation); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_ATTENUATION, attenuation);
state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_SPOT_ATTENUATION, spot_attenuation); state.scene_shader.set_uniform(SceneShaderGLES2::LIGHT_SPOT_ATTENUATION, spot_attenuation);
@ -2490,7 +2490,7 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements,
rebind = true; rebind = true;
} }
bool instancing = e->instance->base_type == VS::INSTANCE_MULTIMESH; bool instancing = e->instance->base_type == RS::INSTANCE_MULTIMESH;
if (instancing != prev_instancing) { if (instancing != prev_instancing) {
@ -2726,10 +2726,10 @@ void RasterizerSceneGLES2::_draw_sky(RasterizerStorageGLES2::Sky *p_sky, const C
glBufferData(GL_ARRAY_BUFFER, sizeof(Vector3) * 8, vertices, GL_DYNAMIC_DRAW); glBufferData(GL_ARRAY_BUFFER, sizeof(Vector3) * 8, vertices, GL_DYNAMIC_DRAW);
// bind sky vertex array.... // bind sky vertex array....
glVertexAttribPointer(VS::ARRAY_VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3) * 2, 0); glVertexAttribPointer(RS::ARRAY_VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3) * 2, 0);
glVertexAttribPointer(VS::ARRAY_TEX_UV, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3) * 2, CAST_INT_TO_UCHAR_PTR(sizeof(Vector3))); glVertexAttribPointer(RS::ARRAY_TEX_UV, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3) * 2, CAST_INT_TO_UCHAR_PTR(sizeof(Vector3)));
glEnableVertexAttribArray(VS::ARRAY_VERTEX); glEnableVertexAttribArray(RS::ARRAY_VERTEX);
glEnableVertexAttribArray(VS::ARRAY_TEX_UV); glEnableVertexAttribArray(RS::ARRAY_TEX_UV);
storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_ASYM_PANO, asymmetrical); storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_ASYM_PANO, asymmetrical);
storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_PANORAMA, !asymmetrical); storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_PANORAMA, !asymmetrical);
@ -2752,8 +2752,8 @@ void RasterizerSceneGLES2::_draw_sky(RasterizerStorageGLES2::Sky *p_sky, const C
glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableVertexAttribArray(VS::ARRAY_VERTEX); glDisableVertexAttribArray(RS::ARRAY_VERTEX);
glDisableVertexAttribArray(VS::ARRAY_TEX_UV); glDisableVertexAttribArray(RS::ARRAY_TEX_UV);
glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0);
storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_ASYM_PANO, false); storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_ASYM_PANO, false);
@ -2845,9 +2845,9 @@ void RasterizerSceneGLES2::_post_process(Environment *env, const CameraMatrix &p
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::USE_ORTHOGONAL_PROJECTION, p_cam_projection.is_orthogonal()); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::USE_ORTHOGONAL_PROJECTION, p_cam_projection.is_orthogonal());
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_FAR_BLUR, true); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_FAR_BLUR, true);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_LOW, env->dof_blur_far_quality == VS::ENV_DOF_BLUR_QUALITY_LOW); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_LOW, env->dof_blur_far_quality == RS::ENV_DOF_BLUR_QUALITY_LOW);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_MEDIUM, env->dof_blur_far_quality == VS::ENV_DOF_BLUR_QUALITY_MEDIUM); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_MEDIUM, env->dof_blur_far_quality == RS::ENV_DOF_BLUR_QUALITY_MEDIUM);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_HIGH, env->dof_blur_far_quality == VS::ENV_DOF_BLUR_QUALITY_HIGH); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_HIGH, env->dof_blur_far_quality == RS::ENV_DOF_BLUR_QUALITY_HIGH);
state.effect_blur_shader.bind(); state.effect_blur_shader.bind();
int qsteps[3] = { 4, 10, 20 }; int qsteps[3] = { 4, 10, 20 };
@ -2911,9 +2911,9 @@ void RasterizerSceneGLES2::_post_process(Environment *env, const CameraMatrix &p
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_NEAR_BLUR, true); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_NEAR_BLUR, true);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_NEAR_FIRST_TAP, true); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_NEAR_FIRST_TAP, true);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_LOW, env->dof_blur_near_quality == VS::ENV_DOF_BLUR_QUALITY_LOW); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_LOW, env->dof_blur_near_quality == RS::ENV_DOF_BLUR_QUALITY_LOW);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_MEDIUM, env->dof_blur_near_quality == VS::ENV_DOF_BLUR_QUALITY_MEDIUM); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_MEDIUM, env->dof_blur_near_quality == RS::ENV_DOF_BLUR_QUALITY_MEDIUM);
state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_HIGH, env->dof_blur_near_quality == VS::ENV_DOF_BLUR_QUALITY_HIGH); state.effect_blur_shader.set_conditional(EffectBlurShaderGLES2::DOF_QUALITY_HIGH, env->dof_blur_near_quality == RS::ENV_DOF_BLUR_QUALITY_HIGH);
state.effect_blur_shader.bind(); state.effect_blur_shader.bind();
int qsteps[3] = { 4, 10, 20 }; int qsteps[3] = { 4, 10, 20 };
@ -3003,7 +3003,7 @@ void RasterizerSceneGLES2::_post_process(Environment *env, const CameraMatrix &p
if (env->glow_enabled) { if (env->glow_enabled) {
for (int i = 0; i < VS::MAX_GLOW_LEVELS; i++) { for (int i = 0; i < RS::MAX_GLOW_LEVELS; i++) {
if (env->glow_levels & (1 << i)) { if (env->glow_levels & (1 << i)) {
if (i >= storage->frame.current_rt->mip_maps[1].sizes.size()) { if (i >= storage->frame.current_rt->mip_maps[1].sizes.size()) {
@ -3156,9 +3156,9 @@ void RasterizerSceneGLES2::_post_process(Environment *env, const CameraMatrix &p
} }
} }
state.tonemap_shader.set_conditional(TonemapShaderGLES2::USE_GLOW_SCREEN, env->glow_blend_mode == VS::ENV_GLOW_BLEND_MODE_SCREEN); state.tonemap_shader.set_conditional(TonemapShaderGLES2::USE_GLOW_SCREEN, env->glow_blend_mode == RS::ENV_GLOW_BLEND_MODE_SCREEN);
state.tonemap_shader.set_conditional(TonemapShaderGLES2::USE_GLOW_SOFTLIGHT, env->glow_blend_mode == VS::ENV_GLOW_BLEND_MODE_SOFTLIGHT); state.tonemap_shader.set_conditional(TonemapShaderGLES2::USE_GLOW_SOFTLIGHT, env->glow_blend_mode == RS::ENV_GLOW_BLEND_MODE_SOFTLIGHT);
state.tonemap_shader.set_conditional(TonemapShaderGLES2::USE_GLOW_REPLACE, env->glow_blend_mode == VS::ENV_GLOW_BLEND_MODE_REPLACE); state.tonemap_shader.set_conditional(TonemapShaderGLES2::USE_GLOW_REPLACE, env->glow_blend_mode == RS::ENV_GLOW_BLEND_MODE_REPLACE);
} }
//Adjustments //Adjustments
@ -3288,7 +3288,7 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
LightInstance *light = light_instance_owner.getornull(light_rid); LightInstance *light = light_instance_owner.getornull(light_rid);
if (light->light_ptr->type == VS::LIGHT_DIRECTIONAL) { if (light->light_ptr->type == RS::LIGHT_DIRECTIONAL) {
render_directional_lights++; render_directional_lights++;
//as going in reverse, directional lights are always first anyway //as going in reverse, directional lights are always first anyway
} }
@ -3322,7 +3322,7 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
reflection_probe_count = 0; reflection_probe_count = 0;
} }
if (env && env->bg_mode == VS::ENV_BG_CANVAS) { if (env && env->bg_mode == RS::ENV_BG_CANVAS) {
// If using canvas background, copy 2d to screen copy texture // If using canvas background, copy 2d to screen copy texture
// TODO: When GLES2 renders to current_rt->mip_maps[], this copy will no longer be needed // TODO: When GLES2 renders to current_rt->mip_maps[], this copy will no longer be needed
_copy_texture_to_buffer(storage->frame.current_rt->color, storage->frame.current_rt->copy_screen_effect.fbo); _copy_texture_to_buffer(storage->frame.current_rt->color, storage->frame.current_rt->copy_screen_effect.fbo);
@ -3358,22 +3358,22 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT]) { if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT]) {
clear_color = Color(0, 0, 0, 0); clear_color = Color(0, 0, 0, 0);
storage->frame.clear_request = false; storage->frame.clear_request = false;
} else if (!env || env->bg_mode == VS::ENV_BG_CLEAR_COLOR || env->bg_mode == VS::ENV_BG_SKY) { } else if (!env || env->bg_mode == RS::ENV_BG_CLEAR_COLOR || env->bg_mode == RS::ENV_BG_SKY) {
if (storage->frame.clear_request) { if (storage->frame.clear_request) {
clear_color = storage->frame.clear_request_color; clear_color = storage->frame.clear_request_color;
storage->frame.clear_request = false; storage->frame.clear_request = false;
} }
} else if (env->bg_mode == VS::ENV_BG_CANVAS || env->bg_mode == VS::ENV_BG_COLOR || env->bg_mode == VS::ENV_BG_COLOR_SKY) { } else if (env->bg_mode == RS::ENV_BG_CANVAS || env->bg_mode == RS::ENV_BG_COLOR || env->bg_mode == RS::ENV_BG_COLOR_SKY) {
clear_color = env->bg_color; clear_color = env->bg_color;
storage->frame.clear_request = false; storage->frame.clear_request = false;
} else if (env->bg_mode == VS::ENV_BG_CAMERA_FEED) { } else if (env->bg_mode == RS::ENV_BG_CAMERA_FEED) {
feed = CameraServer::get_singleton()->get_feed_by_id(env->camera_feed_id); feed = CameraServer::get_singleton()->get_feed_by_id(env->camera_feed_id);
storage->frame.clear_request = false; storage->frame.clear_request = false;
} else { } else {
storage->frame.clear_request = false; storage->frame.clear_request = false;
} }
if (!env || env->bg_mode != VS::ENV_BG_KEEP) { if (!env || env->bg_mode != RS::ENV_BG_KEEP) {
glClearColor(clear_color.r, clear_color.g, clear_color.b, clear_color.a); glClearColor(clear_color.r, clear_color.g, clear_color.b, clear_color.a);
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
} }
@ -3385,7 +3385,7 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
glDisable(GL_SCISSOR_TEST); glDisable(GL_SCISSOR_TEST);
} }
glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glVertexAttrib4f(RS::ARRAY_COLOR, 1, 1, 1, 1);
glBlendEquation(GL_FUNC_ADD); glBlendEquation(GL_FUNC_ADD);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@ -3396,15 +3396,15 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
if (env) { if (env) {
switch (env->bg_mode) { switch (env->bg_mode) {
case VS::ENV_BG_COLOR_SKY: case RS::ENV_BG_COLOR_SKY:
case VS::ENV_BG_SKY: { case RS::ENV_BG_SKY: {
sky = storage->sky_owner.getornull(env->sky); sky = storage->sky_owner.getornull(env->sky);
if (sky) { if (sky) {
env_radiance_tex = sky->radiance; env_radiance_tex = sky->radiance;
} }
} break; } break;
case VS::ENV_BG_CAMERA_FEED: { case RS::ENV_BG_CAMERA_FEED: {
if (feed.is_valid() && (feed->get_base_width() > 0) && (feed->get_base_height() > 0)) { if (feed.is_valid() && (feed->get_base_width() > 0) && (feed->get_base_height() > 0)) {
// copy our camera feed to our background // copy our camera feed to our background
@ -3419,12 +3419,12 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
if (feed->get_datatype() == CameraFeed::FEED_RGB) { if (feed->get_datatype() == CameraFeed::FEED_RGB) {
RID camera_RGBA = feed->get_texture(CameraServer::FEED_RGBA_IMAGE); RID camera_RGBA = feed->get_texture(CameraServer::FEED_RGBA_IMAGE);
VS::get_singleton()->texture_bind(camera_RGBA, 0); RS::get_singleton()->texture_bind(camera_RGBA, 0);
} else if (feed->get_datatype() == CameraFeed::FEED_YCBCR) { } else if (feed->get_datatype() == CameraFeed::FEED_YCBCR) {
RID camera_YCbCr = feed->get_texture(CameraServer::FEED_YCBCR_IMAGE); RID camera_YCbCr = feed->get_texture(CameraServer::FEED_YCBCR_IMAGE);
VS::get_singleton()->texture_bind(camera_YCbCr, 0); RS::get_singleton()->texture_bind(camera_YCbCr, 0);
storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, true); storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, true);
@ -3432,8 +3432,8 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
RID camera_Y = feed->get_texture(CameraServer::FEED_Y_IMAGE); RID camera_Y = feed->get_texture(CameraServer::FEED_Y_IMAGE);
RID camera_CbCr = feed->get_texture(CameraServer::FEED_CBCR_IMAGE); RID camera_CbCr = feed->get_texture(CameraServer::FEED_CBCR_IMAGE);
VS::get_singleton()->texture_bind(camera_Y, 0); RS::get_singleton()->texture_bind(camera_Y, 0);
VS::get_singleton()->texture_bind(camera_CbCr, 1); RS::get_singleton()->texture_bind(camera_CbCr, 1);
storage->shaders.copy.set_conditional(CopyShaderGLES2::SEP_CBCR_TEXTURE, true); storage->shaders.copy.set_conditional(CopyShaderGLES2::SEP_CBCR_TEXTURE, true);
storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, true); storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, true);
@ -3444,8 +3444,8 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
storage->bind_quad_array(); storage->bind_quad_array();
glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableVertexAttribArray(VS::ARRAY_VERTEX); glDisableVertexAttribArray(RS::ARRAY_VERTEX);
glDisableVertexAttribArray(VS::ARRAY_TEX_UV); glDisableVertexAttribArray(RS::ARRAY_TEX_UV);
glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0);
// turn off everything used // turn off everything used
@ -3464,7 +3464,7 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
clear_color = Color(0.0, 1.0, 0.0, 1.0); clear_color = Color(0.0, 1.0, 0.0, 1.0);
} }
} break; } break;
case VS::ENV_BG_CANVAS: { case RS::ENV_BG_CANVAS: {
// use screen copy as background // use screen copy as background
_copy_texture_to_buffer(storage->frame.current_rt->copy_screen_effect.color, current_fb); _copy_texture_to_buffer(storage->frame.current_rt->copy_screen_effect.color, current_fb);
} break; } break;
@ -3484,7 +3484,7 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const
_render_render_list(render_list.elements, render_list.element_count, cam_transform, p_cam_projection, p_shadow_atlas, env, env_radiance_tex, 0.0, 0.0, reverse_cull, false, false); _render_render_list(render_list.elements, render_list.element_count, cam_transform, p_cam_projection, p_shadow_atlas, env, env_radiance_tex, 0.0, 0.0, reverse_cull, false, false);
// then draw the sky after // then draw the sky after
if (env && env->bg_mode == VS::ENV_BG_SKY && (!storage->frame.current_rt || !storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT])) { if (env && env->bg_mode == RS::ENV_BG_SKY && (!storage->frame.current_rt || !storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT])) {
if (sky && sky->panorama.is_valid()) { if (sky && sky->panorama.is_valid()) {
_draw_sky(sky, p_cam_projection, cam_transform, false, env->sky_custom_fov, env->bg_energy, env->sky_orientation); _draw_sky(sky, p_cam_projection, cam_transform, false, env->sky_custom_fov, env->bg_energy, env->sky_orientation);
@ -3616,7 +3616,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
// TODO directional light // TODO directional light
if (light->type == VS::LIGHT_DIRECTIONAL) { if (light->type == RS::LIGHT_DIRECTIONAL) {
// set pssm stuff // set pssm stuff
// TODO set this only when changed // TODO set this only when changed
@ -3651,7 +3651,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
width = light_instance->directional_rect.size.width; width = light_instance->directional_rect.size.width;
height = light_instance->directional_rect.size.height; height = light_instance->directional_rect.size.height;
if (light->directional_shadow_mode == VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { if (light->directional_shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) {
width /= 2; width /= 2;
height /= 2; height /= 2;
@ -3665,7 +3665,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
y += height; y += height;
} }
} else if (light->directional_shadow_mode == VS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { } else if (light->directional_shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) {
height /= 2; height /= 2;
@ -3676,10 +3676,10 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
} }
} }
float bias_mult = Math::lerp(1.0f, light_instance->shadow_transform[p_pass].bias_scale, light->param[VS::LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE]); float bias_mult = Math::lerp(1.0f, light_instance->shadow_transform[p_pass].bias_scale, light->param[RS::LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE]);
zfar = light->param[VS::LIGHT_PARAM_RANGE]; zfar = light->param[RS::LIGHT_PARAM_RANGE];
bias = light->param[VS::LIGHT_PARAM_SHADOW_BIAS] * bias_mult; bias = light->param[RS::LIGHT_PARAM_SHADOW_BIAS] * bias_mult;
normal_bias = light->param[VS::LIGHT_PARAM_SHADOW_NORMAL_BIAS] * bias_mult; normal_bias = light->param[RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS] * bias_mult;
fbo = directional_shadow.fbo; fbo = directional_shadow.fbo;
} else { } else {
@ -3708,9 +3708,9 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
width = shadow_size; width = shadow_size;
height = shadow_size; height = shadow_size;
if (light->type == VS::LIGHT_OMNI) { if (light->type == RS::LIGHT_OMNI) {
// cubemap only // cubemap only
if (light->omni_shadow_mode == VS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_shadow_cubemaps) { if (light->omni_shadow_mode == RS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_shadow_cubemaps) {
int cubemap_index = shadow_cubemaps.size() - 1; int cubemap_index = shadow_cubemaps.size() - 1;
// find an appropriate cubemap to render to // find an appropriate cubemap to render to
@ -3727,7 +3727,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
light_transform = light_instance->shadow_transform[0].transform; light_transform = light_instance->shadow_transform[0].transform;
custom_vp_size = shadow_cubemaps[cubemap_index].size; custom_vp_size = shadow_cubemaps[cubemap_index].size;
zfar = light->param[VS::LIGHT_PARAM_RANGE]; zfar = light->param[RS::LIGHT_PARAM_RANGE];
current_cubemap = cubemap_index; current_cubemap = cubemap_index;
} else { } else {
@ -3736,7 +3736,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
light_projection = light_instance->shadow_transform[0].camera; light_projection = light_instance->shadow_transform[0].camera;
light_transform = light_instance->shadow_transform[0].transform; light_transform = light_instance->shadow_transform[0].transform;
if (light->omni_shadow_detail == VS::LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL) { if (light->omni_shadow_detail == RS::LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL) {
height /= 2; height /= 2;
y += p_pass * height; y += p_pass * height;
@ -3747,22 +3747,22 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
state.dual_parbolloid_direction = p_pass == 0 ? 1.0 : -1.0; state.dual_parbolloid_direction = p_pass == 0 ? 1.0 : -1.0;
flip_facing = (p_pass == 1); flip_facing = (p_pass == 1);
zfar = light->param[VS::LIGHT_PARAM_RANGE]; zfar = light->param[RS::LIGHT_PARAM_RANGE];
bias = light->param[VS::LIGHT_PARAM_SHADOW_BIAS]; bias = light->param[RS::LIGHT_PARAM_SHADOW_BIAS];
state.dual_parbolloid_zfar = zfar; state.dual_parbolloid_zfar = zfar;
state.scene_shader.set_conditional(SceneShaderGLES2::RENDER_DEPTH_DUAL_PARABOLOID, true); state.scene_shader.set_conditional(SceneShaderGLES2::RENDER_DEPTH_DUAL_PARABOLOID, true);
} }
} else if (light->type == VS::LIGHT_SPOT) { } else if (light->type == RS::LIGHT_SPOT) {
light_projection = light_instance->shadow_transform[0].camera; light_projection = light_instance->shadow_transform[0].camera;
light_transform = light_instance->shadow_transform[0].transform; light_transform = light_instance->shadow_transform[0].transform;
flip_facing = false; flip_facing = false;
zfar = light->param[VS::LIGHT_PARAM_RANGE]; zfar = light->param[RS::LIGHT_PARAM_RANGE];
bias = light->param[VS::LIGHT_PARAM_SHADOW_BIAS]; bias = light->param[RS::LIGHT_PARAM_SHADOW_BIAS];
normal_bias = light->param[VS::LIGHT_PARAM_SHADOW_NORMAL_BIAS]; normal_bias = light->param[RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS];
} }
} }
@ -3812,7 +3812,7 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
state.scene_shader.set_conditional(SceneShaderGLES2::RENDER_DEPTH_DUAL_PARABOLOID, false); state.scene_shader.set_conditional(SceneShaderGLES2::RENDER_DEPTH_DUAL_PARABOLOID, false);
// convert cubemap to dual paraboloid if needed // convert cubemap to dual paraboloid if needed
if (light->type == VS::LIGHT_OMNI && (light->omni_shadow_mode == VS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_shadow_cubemaps) && p_pass == 5) { if (light->type == RS::LIGHT_OMNI && (light->omni_shadow_mode == RS::LIGHT_OMNI_SHADOW_CUBE && storage->config.support_shadow_cubemaps) && p_pass == 5) {
ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas); ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas);
glBindFramebuffer(GL_FRAMEBUFFER, shadow_atlas->fbo); glBindFramebuffer(GL_FRAMEBUFFER, shadow_atlas->fbo);
@ -3827,14 +3827,14 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_
state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::Z_FLIP, i == 1); state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::Z_FLIP, i == 1);
state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::Z_NEAR, light_projection.get_z_near()); state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::Z_NEAR, light_projection.get_z_near());
state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::Z_FAR, light_projection.get_z_far()); state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::Z_FAR, light_projection.get_z_far());
state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::BIAS, light->param[VS::LIGHT_PARAM_SHADOW_BIAS]); state.cube_to_dp_shader.set_uniform(CubeToDpShaderGLES2::BIAS, light->param[RS::LIGHT_PARAM_SHADOW_BIAS]);
uint32_t local_width = width; uint32_t local_width = width;
uint32_t local_height = height; uint32_t local_height = height;
uint32_t local_x = x; uint32_t local_x = x;
uint32_t local_y = y; uint32_t local_y = y;
if (light->omni_shadow_detail == VS::LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL) { if (light->omni_shadow_detail == RS::LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL) {
local_height /= 2; local_height /= 2;
local_y += i * local_height; local_y += i * local_height;
} else { } else {
@ -3922,7 +3922,7 @@ bool RasterizerSceneGLES2::free(RID p_rid) {
return true; return true;
} }
void RasterizerSceneGLES2::set_debug_draw_mode(VS::ViewportDebugDraw p_debug_draw) { void RasterizerSceneGLES2::set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) {
} }
void RasterizerSceneGLES2::initialize() { void RasterizerSceneGLES2::initialize() {

View File

@ -236,7 +236,7 @@ public:
/* ENVIRONMENT API */ /* ENVIRONMENT API */
struct Environment { struct Environment {
VS::EnvironmentBG bg_mode; RS::EnvironmentBG bg_mode;
RID sky; RID sky;
float sky_custom_fov; float sky_custom_fov;
@ -259,7 +259,7 @@ public:
float glow_intensity; float glow_intensity;
float glow_strength; float glow_strength;
float glow_bloom; float glow_bloom;
VS::EnvironmentGlowBlendMode glow_blend_mode; RS::EnvironmentGlowBlendMode glow_blend_mode;
float glow_hdr_bleed_threshold; float glow_hdr_bleed_threshold;
float glow_hdr_bleed_scale; float glow_hdr_bleed_scale;
float glow_hdr_luminance_cap; float glow_hdr_luminance_cap;
@ -269,13 +269,13 @@ public:
float dof_blur_far_distance; float dof_blur_far_distance;
float dof_blur_far_transition; float dof_blur_far_transition;
float dof_blur_far_amount; float dof_blur_far_amount;
VS::EnvironmentDOFBlurQuality dof_blur_far_quality; RS::EnvironmentDOFBlurQuality dof_blur_far_quality;
bool dof_blur_near_enabled; bool dof_blur_near_enabled;
float dof_blur_near_distance; float dof_blur_near_distance;
float dof_blur_near_transition; float dof_blur_near_transition;
float dof_blur_near_amount; float dof_blur_near_amount;
VS::EnvironmentDOFBlurQuality dof_blur_near_quality; RS::EnvironmentDOFBlurQuality dof_blur_near_quality;
bool adjustments_enabled; bool adjustments_enabled;
float adjustments_brightness; float adjustments_brightness;
@ -300,7 +300,7 @@ public:
float fog_height_curve; float fog_height_curve;
Environment() : Environment() :
bg_mode(VS::ENV_BG_CLEAR_COLOR), bg_mode(RS::ENV_BG_CLEAR_COLOR),
sky_custom_fov(0.0), sky_custom_fov(0.0),
bg_energy(1.0), bg_energy(1.0),
sky_ambient(0), sky_ambient(0),
@ -313,7 +313,7 @@ public:
glow_intensity(0.8), glow_intensity(0.8),
glow_strength(1.0), glow_strength(1.0),
glow_bloom(0.0), glow_bloom(0.0),
glow_blend_mode(VS::ENV_GLOW_BLEND_MODE_SOFTLIGHT), glow_blend_mode(RS::ENV_GLOW_BLEND_MODE_SOFTLIGHT),
glow_hdr_bleed_threshold(1.0), glow_hdr_bleed_threshold(1.0),
glow_hdr_bleed_scale(2.0), glow_hdr_bleed_scale(2.0),
glow_hdr_luminance_cap(12.0), glow_hdr_luminance_cap(12.0),
@ -322,12 +322,12 @@ public:
dof_blur_far_distance(10), dof_blur_far_distance(10),
dof_blur_far_transition(5), dof_blur_far_transition(5),
dof_blur_far_amount(0.1), dof_blur_far_amount(0.1),
dof_blur_far_quality(VS::ENV_DOF_BLUR_QUALITY_MEDIUM), dof_blur_far_quality(RS::ENV_DOF_BLUR_QUALITY_MEDIUM),
dof_blur_near_enabled(false), dof_blur_near_enabled(false),
dof_blur_near_distance(2), dof_blur_near_distance(2),
dof_blur_near_transition(1), dof_blur_near_transition(1),
dof_blur_near_amount(0.1), dof_blur_near_amount(0.1),
dof_blur_near_quality(VS::ENV_DOF_BLUR_QUALITY_MEDIUM), dof_blur_near_quality(RS::ENV_DOF_BLUR_QUALITY_MEDIUM),
adjustments_enabled(false), adjustments_enabled(false),
adjustments_brightness(1.0), adjustments_brightness(1.0),
adjustments_contrast(1.0), adjustments_contrast(1.0),
@ -353,7 +353,7 @@ public:
virtual RID environment_create(); virtual RID environment_create();
virtual void environment_set_background(RID p_env, VS::EnvironmentBG p_bg); virtual void environment_set_background(RID p_env, RS::EnvironmentBG p_bg);
virtual void environment_set_sky(RID p_env, RID p_sky); virtual void environment_set_sky(RID p_env, RID p_sky);
virtual void environment_set_sky_custom_fov(RID p_env, float p_scale); virtual void environment_set_sky_custom_fov(RID p_env, float p_scale);
virtual void environment_set_sky_orientation(RID p_env, const Basis &p_orientation); virtual void environment_set_sky_orientation(RID p_env, const Basis &p_orientation);
@ -363,15 +363,15 @@ public:
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0); virtual void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0);
virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id); virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id);
virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, RS::EnvironmentDOFBlurQuality p_quality);
virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, RS::EnvironmentDOFBlurQuality p_quality);
virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale); virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale);
virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture); virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture);
virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_in, float p_fade_out, float p_depth_tolerance, bool p_roughness); virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_in, float p_fade_out, float p_depth_tolerance, bool p_roughness);
virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_radius2, float p_intensity2, float p_bias, float p_light_affect, float p_ao_channel_affect, const Color &p_color, VS::EnvironmentSSAOQuality p_quality, VS::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness); virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_radius2, float p_intensity2, float p_bias, float p_light_affect, float p_ao_channel_affect, const Color &p_color, RS::EnvironmentSSAOQuality p_quality, RS::EnvironmentSSAOBlur p_blur, float p_bilateral_sharpness);
virtual void environment_set_tonemap(RID p_env, VS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale); virtual void environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale);
virtual void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, RID p_ramp); virtual void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, RID p_ramp);
@ -381,7 +381,7 @@ public:
virtual bool is_environment(RID p_env); virtual bool is_environment(RID p_env);
virtual VS::EnvironmentBG environment_get_background(RID p_env); virtual RS::EnvironmentBG environment_get_background(RID p_env);
virtual int environment_get_canvas_max_layer(RID p_env); virtual int environment_get_canvas_max_layer(RID p_env);
/* LIGHT INSTANCE */ /* LIGHT INSTANCE */
@ -650,7 +650,7 @@ public:
virtual bool free(RID p_rid); virtual bool free(RID p_rid);
virtual void set_scene_pass(uint64_t p_pass); virtual void set_scene_pass(uint64_t p_pass);
virtual void set_debug_draw_mode(VS::ViewportDebugDraw p_debug_draw); virtual void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw);
void iteration(); void iteration();
void initialize(); void initialize();

File diff suppressed because it is too large Load Diff

View File

@ -32,8 +32,8 @@
#define RASTERIZERSTORAGEGLES2_H #define RASTERIZERSTORAGEGLES2_H
#include "core/self_list.h" #include "core/self_list.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
#include "servers/visual/shader_language.h" #include "servers/rendering/shader_language.h"
#include "shader_compiler_gles2.h" #include "shader_compiler_gles2.h"
#include "shader_gles2.h" #include "shader_gles2.h"
@ -249,7 +249,7 @@ public:
int width, height, depth; int width, height, depth;
int alloc_width, alloc_height; int alloc_width, alloc_height;
Image::Format format; Image::Format format;
VS::TextureType type; RS::TextureType type;
GLenum target; GLenum target;
GLenum gl_format_cache; GLenum gl_format_cache;
@ -279,13 +279,13 @@ public:
bool redraw_if_visible; bool redraw_if_visible;
VisualServer::TextureDetectCallback detect_3d; RenderingServer::TextureDetectCallback detect_3d;
void *detect_3d_ud; void *detect_3d_ud;
VisualServer::TextureDetectCallback detect_srgb; RenderingServer::TextureDetectCallback detect_srgb;
void *detect_srgb_ud; void *detect_srgb_ud;
VisualServer::TextureDetectCallback detect_normal; RenderingServer::TextureDetectCallback detect_normal;
void *detect_normal_ud; void *detect_normal_ud;
Texture() : Texture() :
@ -296,7 +296,7 @@ public:
alloc_width(0), alloc_width(0),
alloc_height(0), alloc_height(0),
format(Image::FORMAT_L8), format(Image::FORMAT_L8),
type(VS::TEXTURE_TYPE_2D), type(RS::TEXTURE_TYPE_2D),
target(0), target(0),
data_size(0), data_size(0),
total_data_size(0), total_data_size(0),
@ -345,14 +345,14 @@ public:
Ref<Image> _get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool p_force_decompress) const; Ref<Image> _get_gl_image_and_format(const Ref<Image> &p_image, Image::Format p_format, uint32_t p_flags, Image::Format &r_real_format, GLenum &r_gl_format, GLenum &r_gl_internal_format, GLenum &r_gl_type, bool &r_compressed, bool p_force_decompress) const;
virtual RID texture_create(); virtual RID texture_create();
virtual void texture_allocate(RID p_texture, int p_width, int p_height, int p_depth_3d, Image::Format p_format, VS::TextureType p_type, uint32_t p_flags = VS::TEXTURE_FLAGS_DEFAULT); virtual void texture_allocate(RID p_texture, int p_width, int p_height, int p_depth_3d, Image::Format p_format, RS::TextureType p_type, uint32_t p_flags = RS::TEXTURE_FLAGS_DEFAULT);
virtual void texture_set_data(RID p_texture, const Ref<Image> &p_image, int p_layer = 0); virtual void texture_set_data(RID p_texture, const Ref<Image> &p_image, int p_layer = 0);
virtual void texture_set_data_partial(RID p_texture, const Ref<Image> &p_image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int p_dst_mip, int p_layer = 0); virtual void texture_set_data_partial(RID p_texture, const Ref<Image> &p_image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int p_dst_mip, int p_layer = 0);
virtual Ref<Image> texture_get_data(RID p_texture, int p_layer = 0) const; virtual Ref<Image> texture_get_data(RID p_texture, int p_layer = 0) const;
virtual void texture_set_flags(RID p_texture, uint32_t p_flags); virtual void texture_set_flags(RID p_texture, uint32_t p_flags);
virtual uint32_t texture_get_flags(RID p_texture) const; virtual uint32_t texture_get_flags(RID p_texture) const;
virtual Image::Format texture_get_format(RID p_texture) const; virtual Image::Format texture_get_format(RID p_texture) const;
virtual VS::TextureType texture_get_type(RID p_texture) const; virtual RS::TextureType texture_get_type(RID p_texture) const;
virtual uint32_t texture_get_texid(RID p_texture) const; virtual uint32_t texture_get_texid(RID p_texture) const;
virtual uint32_t texture_get_width(RID p_texture) const; virtual uint32_t texture_get_width(RID p_texture) const;
virtual uint32_t texture_get_height(RID p_texture) const; virtual uint32_t texture_get_height(RID p_texture) const;
@ -365,7 +365,7 @@ public:
virtual void texture_set_shrink_all_x2_on_set_data(bool p_enable); virtual void texture_set_shrink_all_x2_on_set_data(bool p_enable);
virtual void texture_debug_usage(List<VS::TextureInfo> *r_info); virtual void texture_debug_usage(List<RS::TextureInfo> *r_info);
virtual RID texture_create_radiance_cubemap(RID p_source, int p_resolution = -1) const; virtual RID texture_create_radiance_cubemap(RID p_source, int p_resolution = -1) const;
@ -374,9 +374,9 @@ public:
virtual void texture_set_proxy(RID p_texture, RID p_proxy); virtual void texture_set_proxy(RID p_texture, RID p_proxy);
virtual Size2 texture_size_with_proxy(RID p_texture) const; virtual Size2 texture_size_with_proxy(RID p_texture) const;
virtual void texture_set_detect_3d_callback(RID p_texture, VisualServer::TextureDetectCallback p_callback, void *p_userdata); virtual void texture_set_detect_3d_callback(RID p_texture, RenderingServer::TextureDetectCallback p_callback, void *p_userdata);
virtual void texture_set_detect_srgb_callback(RID p_texture, VisualServer::TextureDetectCallback p_callback, void *p_userdata); virtual void texture_set_detect_srgb_callback(RID p_texture, RenderingServer::TextureDetectCallback p_callback, void *p_userdata);
virtual void texture_set_detect_normal_callback(RID p_texture, VisualServer::TextureDetectCallback p_callback, void *p_userdata); virtual void texture_set_detect_normal_callback(RID p_texture, RenderingServer::TextureDetectCallback p_callback, void *p_userdata);
virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable); virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable);
@ -402,7 +402,7 @@ public:
RID self; RID self;
VS::ShaderMode mode; RS::ShaderMode mode;
ShaderGLES2 *shader; ShaderGLES2 *shader;
String code; String code;
SelfList<Material>::List materials; SelfList<Material>::List materials;
@ -617,7 +617,7 @@ public:
uint32_t offset; uint32_t offset;
}; };
Attrib attribs[VS::ARRAY_MAX]; Attrib attribs[RS::ARRAY_MAX];
Mesh *mesh; Mesh *mesh;
uint32_t format; uint32_t format;
@ -641,7 +641,7 @@ public:
int array_byte_size; int array_byte_size;
int index_array_byte_size; int index_array_byte_size;
VS::PrimitiveType primitive; RS::PrimitiveType primitive;
Vector<AABB> skeleton_bone_aabb; Vector<AABB> skeleton_bone_aabb;
Vector<bool> skeleton_bone_used; Vector<bool> skeleton_bone_used;
@ -660,7 +660,7 @@ public:
index_array_len(0), index_array_len(0),
array_byte_size(0), array_byte_size(0),
index_array_byte_size(0), index_array_byte_size(0),
primitive(VS::PRIMITIVE_POINTS), primitive(RS::PRIMITIVE_POINTS),
active(false), active(false),
total_data_size(0) { total_data_size(0) {
} }
@ -675,7 +675,7 @@ public:
Vector<Surface *> surfaces; Vector<Surface *> surfaces;
int blend_shape_count; int blend_shape_count;
VS::BlendShapeMode blend_shape_mode; RS::BlendShapeMode blend_shape_mode;
AABB custom_aabb; AABB custom_aabb;
@ -694,7 +694,7 @@ public:
Mesh() : Mesh() :
blend_shape_count(0), blend_shape_count(0),
blend_shape_mode(VS::BLEND_SHAPE_MODE_NORMALIZED) { blend_shape_mode(RS::BLEND_SHAPE_MODE_NORMALIZED) {
} }
}; };
@ -702,13 +702,13 @@ public:
virtual RID mesh_create(); virtual RID mesh_create();
virtual void mesh_add_surface(RID p_mesh, uint32_t p_format, VS::PrimitiveType p_primitive, const Vector<uint8_t> &p_array, int p_vertex_count, const Vector<uint8_t> &p_index_array, int p_index_count, const AABB &p_aabb, const Vector<Vector<uint8_t>> &p_blend_shapes = Vector<Vector<uint8_t>>(), const Vector<AABB> &p_bone_aabbs = Vector<AABB>()); virtual void mesh_add_surface(RID p_mesh, uint32_t p_format, RS::PrimitiveType p_primitive, const Vector<uint8_t> &p_array, int p_vertex_count, const Vector<uint8_t> &p_index_array, int p_index_count, const AABB &p_aabb, const Vector<Vector<uint8_t>> &p_blend_shapes = Vector<Vector<uint8_t>>(), const Vector<AABB> &p_bone_aabbs = Vector<AABB>());
virtual void mesh_set_blend_shape_count(RID p_mesh, int p_amount); virtual void mesh_set_blend_shape_count(RID p_mesh, int p_amount);
virtual int mesh_get_blend_shape_count(RID p_mesh) const; virtual int mesh_get_blend_shape_count(RID p_mesh) const;
virtual void mesh_set_blend_shape_mode(RID p_mesh, VS::BlendShapeMode p_mode); virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode);
virtual VS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const; virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const;
virtual void mesh_surface_update_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data); virtual void mesh_surface_update_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data);
@ -722,7 +722,7 @@ public:
virtual Vector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const; virtual Vector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const;
virtual uint32_t mesh_surface_get_format(RID p_mesh, int p_surface) const; virtual uint32_t mesh_surface_get_format(RID p_mesh, int p_surface) const;
virtual VS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const; virtual RS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const;
virtual AABB mesh_surface_get_aabb(RID p_mesh, int p_surface) const; virtual AABB mesh_surface_get_aabb(RID p_mesh, int p_surface) const;
virtual Vector<Vector<uint8_t>> mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const; virtual Vector<Vector<uint8_t>> mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const;
@ -744,9 +744,9 @@ public:
RID mesh; RID mesh;
int size; int size;
VS::MultimeshTransformFormat transform_format; RS::MultimeshTransformFormat transform_format;
VS::MultimeshColorFormat color_format; RS::MultimeshColorFormat color_format;
VS::MultimeshCustomDataFormat custom_data_format; RS::MultimeshCustomDataFormat custom_data_format;
Vector<float> data; Vector<float> data;
@ -766,9 +766,9 @@ public:
MultiMesh() : MultiMesh() :
size(0), size(0),
transform_format(VS::MULTIMESH_TRANSFORM_2D), transform_format(RS::MULTIMESH_TRANSFORM_2D),
color_format(VS::MULTIMESH_COLOR_NONE), color_format(RS::MULTIMESH_COLOR_NONE),
custom_data_format(VS::MULTIMESH_CUSTOM_DATA_NONE), custom_data_format(RS::MULTIMESH_CUSTOM_DATA_NONE),
update_list(this), update_list(this),
mesh_list(this), mesh_list(this),
visible_instances(-1), visible_instances(-1),
@ -786,7 +786,7 @@ public:
virtual RID multimesh_create(); virtual RID multimesh_create();
virtual void multimesh_allocate(RID p_multimesh, int p_instances, VS::MultimeshTransformFormat p_transform_format, VS::MultimeshColorFormat p_color_format, VS::MultimeshCustomDataFormat p_data = VS::MULTIMESH_CUSTOM_DATA_NONE); virtual void multimesh_allocate(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, RS::MultimeshColorFormat p_color_format, RS::MultimeshCustomDataFormat p_data = RS::MULTIMESH_CUSTOM_DATA_NONE);
virtual int multimesh_get_instance_count(RID p_multimesh) const; virtual int multimesh_get_instance_count(RID p_multimesh) const;
virtual void multimesh_set_mesh(RID p_multimesh, RID p_mesh); virtual void multimesh_set_mesh(RID p_multimesh, RID p_mesh);
@ -817,7 +817,7 @@ public:
struct Chunk { struct Chunk {
RID texture; RID texture;
VS::PrimitiveType primitive; RS::PrimitiveType primitive;
Vector<Vector3> vertices; Vector<Vector3> vertices;
Vector<Vector3> normals; Vector<Vector3> normals;
Vector<Plane> tangents; Vector<Plane> tangents;
@ -846,7 +846,7 @@ public:
mutable RID_PtrOwner<Immediate> immediate_owner; mutable RID_PtrOwner<Immediate> immediate_owner;
virtual RID immediate_create(); virtual RID immediate_create();
virtual void immediate_begin(RID p_immediate, VS::PrimitiveType p_primitive, RID p_texture = RID()); virtual void immediate_begin(RID p_immediate, RS::PrimitiveType p_primitive, RID p_texture = RID());
virtual void immediate_vertex(RID p_immediate, const Vector3 &p_vertex); virtual void immediate_vertex(RID p_immediate, const Vector3 &p_vertex);
virtual void immediate_normal(RID p_immediate, const Vector3 &p_normal); virtual void immediate_normal(RID p_immediate, const Vector3 &p_normal);
virtual void immediate_tangent(RID p_immediate, const Plane &p_tangent); virtual void immediate_tangent(RID p_immediate, const Plane &p_tangent);
@ -906,8 +906,8 @@ public:
/* Light API */ /* Light API */
struct Light : Instantiable { struct Light : Instantiable {
VS::LightType type; RS::LightType type;
float param[VS::LIGHT_PARAM_MAX]; float param[RS::LIGHT_PARAM_MAX];
Color color; Color color;
Color shadow_color; Color shadow_color;
@ -921,11 +921,11 @@ public:
uint32_t cull_mask; uint32_t cull_mask;
VS::LightOmniShadowMode omni_shadow_mode; RS::LightOmniShadowMode omni_shadow_mode;
VS::LightOmniShadowDetail omni_shadow_detail; RS::LightOmniShadowDetail omni_shadow_detail;
VS::LightDirectionalShadowMode directional_shadow_mode; RS::LightDirectionalShadowMode directional_shadow_mode;
VS::LightDirectionalShadowDepthRangeMode directional_range_mode; RS::LightDirectionalShadowDepthRangeMode directional_range_mode;
bool directional_blend_splits; bool directional_blend_splits;
@ -934,10 +934,10 @@ public:
mutable RID_PtrOwner<Light> light_owner; mutable RID_PtrOwner<Light> light_owner;
virtual RID light_create(VS::LightType p_type); virtual RID light_create(RS::LightType p_type);
virtual void light_set_color(RID p_light, const Color &p_color); virtual void light_set_color(RID p_light, const Color &p_color);
virtual void light_set_param(RID p_light, VS::LightParam p_param, float p_value); virtual void light_set_param(RID p_light, RS::LightParam p_param, float p_value);
virtual void light_set_shadow(RID p_light, bool p_enabled); virtual void light_set_shadow(RID p_light, bool p_enabled);
virtual void light_set_shadow_color(RID p_light, const Color &p_color); virtual void light_set_shadow_color(RID p_light, const Color &p_color);
virtual void light_set_projector(RID p_light, RID p_texture); virtual void light_set_projector(RID p_light, RID p_texture);
@ -946,23 +946,23 @@ public:
virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled); virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled);
virtual void light_set_use_gi(RID p_light, bool p_enabled); virtual void light_set_use_gi(RID p_light, bool p_enabled);
virtual void light_omni_set_shadow_mode(RID p_light, VS::LightOmniShadowMode p_mode); virtual void light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode);
virtual void light_omni_set_shadow_detail(RID p_light, VS::LightOmniShadowDetail p_detail); virtual void light_omni_set_shadow_detail(RID p_light, RS::LightOmniShadowDetail p_detail);
virtual void light_directional_set_shadow_mode(RID p_light, VS::LightDirectionalShadowMode p_mode); virtual void light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode);
virtual void light_directional_set_blend_splits(RID p_light, bool p_enable); virtual void light_directional_set_blend_splits(RID p_light, bool p_enable);
virtual bool light_directional_get_blend_splits(RID p_light) const; virtual bool light_directional_get_blend_splits(RID p_light) const;
virtual VS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light); virtual RS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light);
virtual VS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light); virtual RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light);
virtual void light_directional_set_shadow_depth_range_mode(RID p_light, VS::LightDirectionalShadowDepthRangeMode p_range_mode); virtual void light_directional_set_shadow_depth_range_mode(RID p_light, RS::LightDirectionalShadowDepthRangeMode p_range_mode);
virtual VS::LightDirectionalShadowDepthRangeMode light_directional_get_shadow_depth_range_mode(RID p_light) const; virtual RS::LightDirectionalShadowDepthRangeMode light_directional_get_shadow_depth_range_mode(RID p_light) const;
virtual bool light_has_shadow(RID p_light) const; virtual bool light_has_shadow(RID p_light) const;
virtual VS::LightType light_get_type(RID p_light) const; virtual RS::LightType light_get_type(RID p_light) const;
virtual float light_get_param(RID p_light, VS::LightParam p_param); virtual float light_get_param(RID p_light, RS::LightParam p_param);
virtual Color light_get_color(RID p_light); virtual Color light_get_color(RID p_light);
virtual bool light_get_use_gi(RID p_light); virtual bool light_get_use_gi(RID p_light);
@ -973,7 +973,7 @@ public:
struct ReflectionProbe : Instantiable { struct ReflectionProbe : Instantiable {
VS::ReflectionProbeUpdateMode update_mode; RS::ReflectionProbeUpdateMode update_mode;
float intensity; float intensity;
Color interior_ambient; Color interior_ambient;
float interior_ambient_energy; float interior_ambient_energy;
@ -992,7 +992,7 @@ public:
virtual RID reflection_probe_create(); virtual RID reflection_probe_create();
virtual void reflection_probe_set_update_mode(RID p_probe, VS::ReflectionProbeUpdateMode p_mode); virtual void reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode);
virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity); virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity);
virtual void reflection_probe_set_interior_ambient(RID p_probe, const Color &p_ambient); virtual void reflection_probe_set_interior_ambient(RID p_probe, const Color &p_ambient);
virtual void reflection_probe_set_interior_ambient_energy(RID p_probe, float p_energy); virtual void reflection_probe_set_interior_ambient_energy(RID p_probe, float p_energy);
@ -1007,7 +1007,7 @@ public:
virtual void reflection_probe_set_resolution(RID p_probe, int p_resolution); virtual void reflection_probe_set_resolution(RID p_probe, int p_resolution);
virtual AABB reflection_probe_get_aabb(RID p_probe) const; virtual AABB reflection_probe_get_aabb(RID p_probe) const;
virtual VS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const; virtual RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const;
virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const; virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const;
virtual int reflection_probe_get_resolution(RID p_probe) const; virtual int reflection_probe_get_resolution(RID p_probe) const;
@ -1111,7 +1111,7 @@ public:
virtual void particles_set_fractional_delta(RID p_particles, bool p_enable); virtual void particles_set_fractional_delta(RID p_particles, bool p_enable);
virtual void particles_restart(RID p_particles); virtual void particles_restart(RID p_particles);
virtual void particles_set_draw_order(RID p_particles, VS::ParticlesDrawOrder p_order); virtual void particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order);
virtual void particles_set_draw_passes(RID p_particles, int p_passes); virtual void particles_set_draw_passes(RID p_particles, int p_passes);
virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh); virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh);
@ -1203,7 +1203,7 @@ public:
bool flags[RENDER_TARGET_FLAG_MAX]; bool flags[RENDER_TARGET_FLAG_MAX];
bool used_in_frame; bool used_in_frame;
VS::ViewportMSAA msaa; RS::ViewportMSAA msaa;
RID texture; RID texture;
@ -1223,7 +1223,7 @@ public:
width(0), width(0),
height(0), height(0),
used_in_frame(false), used_in_frame(false),
msaa(VS::VIEWPORT_MSAA_DISABLED), msaa(RS::VIEWPORT_MSAA_DISABLED),
used_dof_blur_near(false), used_dof_blur_near(false),
mip_maps_allocated(false) { mip_maps_allocated(false) {
for (int i = 0; i < RENDER_TARGET_FLAG_MAX; ++i) { for (int i = 0; i < RENDER_TARGET_FLAG_MAX; ++i) {
@ -1247,7 +1247,7 @@ public:
virtual void render_target_set_flag(RID p_render_target, RenderTargetFlags p_flag, bool p_value); virtual void render_target_set_flag(RID p_render_target, RenderTargetFlags p_flag, bool p_value);
virtual bool render_target_was_used(RID p_render_target); virtual bool render_target_was_used(RID p_render_target);
virtual void render_target_set_as_unused(RID p_render_target); virtual void render_target_set_as_unused(RID p_render_target);
virtual void render_target_set_msaa(RID p_render_target, VS::ViewportMSAA p_msaa); virtual void render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa);
/* CANVAS SHADOW */ /* CANVAS SHADOW */
@ -1279,7 +1279,7 @@ public:
virtual RID canvas_light_occluder_create(); virtual RID canvas_light_occluder_create();
virtual void canvas_light_occluder_set_polylines(RID p_occluder, const Vector<Vector2> &p_lines); virtual void canvas_light_occluder_set_polylines(RID p_occluder, const Vector<Vector2> &p_lines);
virtual VS::InstanceType get_base_type(RID p_rid) const; virtual RS::InstanceType get_base_type(RID p_rid) const;
virtual bool free(RID p_rid); virtual bool free(RID p_rid);
@ -1309,9 +1309,9 @@ public:
virtual void render_info_begin_capture(); virtual void render_info_begin_capture();
virtual void render_info_end_capture(); virtual void render_info_end_capture();
virtual int get_captured_render_info(VS::RenderInfo p_info); virtual int get_captured_render_info(RS::RenderInfo p_info);
virtual int get_render_info(VS::RenderInfo p_info); virtual int get_render_info(RS::RenderInfo p_info);
virtual String get_video_adapter_name() const; virtual String get_video_adapter_name() const;
virtual String get_video_adapter_vendor() const; virtual String get_video_adapter_vendor() const;

View File

@ -934,7 +934,7 @@ String ShaderCompilerGLES2::_dump_node_code(SL::Node *p_node, int p_level, Gener
return code.as_string(); return code.as_string();
} }
Error ShaderCompilerGLES2::compile(VS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code) { Error ShaderCompilerGLES2::compile(RS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code) {
Error err = parser.compile(p_code, ShaderTypes::get_singleton()->get_functions(p_mode), ShaderTypes::get_singleton()->get_modes(p_mode), ShaderTypes::get_singleton()->get_types()); Error err = parser.compile(p_code, ShaderTypes::get_singleton()->get_functions(p_mode), ShaderTypes::get_singleton()->get_modes(p_mode), ShaderTypes::get_singleton()->get_types());
@ -975,210 +975,210 @@ ShaderCompilerGLES2::ShaderCompilerGLES2() {
/** CANVAS ITEM SHADER **/ /** CANVAS ITEM SHADER **/
actions[VS::SHADER_CANVAS_ITEM].renames["VERTEX"] = "outvec.xy"; actions[RS::SHADER_CANVAS_ITEM].renames["VERTEX"] = "outvec.xy";
actions[VS::SHADER_CANVAS_ITEM].renames["UV"] = "uv"; actions[RS::SHADER_CANVAS_ITEM].renames["UV"] = "uv";
actions[VS::SHADER_CANVAS_ITEM].renames["POINT_SIZE"] = "point_size"; actions[RS::SHADER_CANVAS_ITEM].renames["POINT_SIZE"] = "point_size";
actions[VS::SHADER_CANVAS_ITEM].renames["WORLD_MATRIX"] = "modelview_matrix"; actions[RS::SHADER_CANVAS_ITEM].renames["WORLD_MATRIX"] = "modelview_matrix";
actions[VS::SHADER_CANVAS_ITEM].renames["PROJECTION_MATRIX"] = "projection_matrix"; actions[RS::SHADER_CANVAS_ITEM].renames["PROJECTION_MATRIX"] = "projection_matrix";
actions[VS::SHADER_CANVAS_ITEM].renames["EXTRA_MATRIX"] = "extra_matrix_instance"; actions[RS::SHADER_CANVAS_ITEM].renames["EXTRA_MATRIX"] = "extra_matrix_instance";
actions[VS::SHADER_CANVAS_ITEM].renames["TIME"] = "time"; actions[RS::SHADER_CANVAS_ITEM].renames["TIME"] = "time";
actions[VS::SHADER_CANVAS_ITEM].renames["AT_LIGHT_PASS"] = "at_light_pass"; actions[RS::SHADER_CANVAS_ITEM].renames["AT_LIGHT_PASS"] = "at_light_pass";
actions[VS::SHADER_CANVAS_ITEM].renames["INSTANCE_CUSTOM"] = "instance_custom"; actions[RS::SHADER_CANVAS_ITEM].renames["INSTANCE_CUSTOM"] = "instance_custom";
actions[VS::SHADER_CANVAS_ITEM].renames["COLOR"] = "color"; actions[RS::SHADER_CANVAS_ITEM].renames["COLOR"] = "color";
actions[VS::SHADER_CANVAS_ITEM].renames["NORMAL"] = "normal"; actions[RS::SHADER_CANVAS_ITEM].renames["NORMAL"] = "normal";
actions[VS::SHADER_CANVAS_ITEM].renames["NORMALMAP"] = "normal_map"; actions[RS::SHADER_CANVAS_ITEM].renames["NORMALMAP"] = "normal_map";
actions[VS::SHADER_CANVAS_ITEM].renames["NORMALMAP_DEPTH"] = "normal_depth"; actions[RS::SHADER_CANVAS_ITEM].renames["NORMALMAP_DEPTH"] = "normal_depth";
actions[VS::SHADER_CANVAS_ITEM].renames["TEXTURE"] = "color_texture"; actions[RS::SHADER_CANVAS_ITEM].renames["TEXTURE"] = "color_texture";
actions[VS::SHADER_CANVAS_ITEM].renames["TEXTURE_PIXEL_SIZE"] = "color_texpixel_size"; actions[RS::SHADER_CANVAS_ITEM].renames["TEXTURE_PIXEL_SIZE"] = "color_texpixel_size";
actions[VS::SHADER_CANVAS_ITEM].renames["NORMAL_TEXTURE"] = "normal_texture"; actions[RS::SHADER_CANVAS_ITEM].renames["NORMAL_TEXTURE"] = "normal_texture";
actions[VS::SHADER_CANVAS_ITEM].renames["SCREEN_UV"] = "screen_uv"; actions[RS::SHADER_CANVAS_ITEM].renames["SCREEN_UV"] = "screen_uv";
actions[VS::SHADER_CANVAS_ITEM].renames["SCREEN_TEXTURE"] = "screen_texture"; actions[RS::SHADER_CANVAS_ITEM].renames["SCREEN_TEXTURE"] = "screen_texture";
actions[VS::SHADER_CANVAS_ITEM].renames["SCREEN_PIXEL_SIZE"] = "screen_pixel_size"; actions[RS::SHADER_CANVAS_ITEM].renames["SCREEN_PIXEL_SIZE"] = "screen_pixel_size";
actions[VS::SHADER_CANVAS_ITEM].renames["FRAGCOORD"] = "gl_FragCoord"; actions[RS::SHADER_CANVAS_ITEM].renames["FRAGCOORD"] = "gl_FragCoord";
actions[VS::SHADER_CANVAS_ITEM].renames["POINT_COORD"] = "gl_PointCoord"; actions[RS::SHADER_CANVAS_ITEM].renames["POINT_COORD"] = "gl_PointCoord";
actions[VS::SHADER_CANVAS_ITEM].renames["LIGHT_VEC"] = "light_vec"; actions[RS::SHADER_CANVAS_ITEM].renames["LIGHT_VEC"] = "light_vec";
actions[VS::SHADER_CANVAS_ITEM].renames["LIGHT_HEIGHT"] = "light_height"; actions[RS::SHADER_CANVAS_ITEM].renames["LIGHT_HEIGHT"] = "light_height";
actions[VS::SHADER_CANVAS_ITEM].renames["LIGHT_COLOR"] = "light_color"; actions[RS::SHADER_CANVAS_ITEM].renames["LIGHT_COLOR"] = "light_color";
actions[VS::SHADER_CANVAS_ITEM].renames["LIGHT_UV"] = "light_uv"; actions[RS::SHADER_CANVAS_ITEM].renames["LIGHT_UV"] = "light_uv";
actions[VS::SHADER_CANVAS_ITEM].renames["LIGHT"] = "light"; actions[RS::SHADER_CANVAS_ITEM].renames["LIGHT"] = "light";
actions[VS::SHADER_CANVAS_ITEM].renames["SHADOW_COLOR"] = "shadow_color"; actions[RS::SHADER_CANVAS_ITEM].renames["SHADOW_COLOR"] = "shadow_color";
actions[VS::SHADER_CANVAS_ITEM].renames["SHADOW_VEC"] = "shadow_vec"; actions[RS::SHADER_CANVAS_ITEM].renames["SHADOW_VEC"] = "shadow_vec";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["COLOR"] = "#define COLOR_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["COLOR"] = "#define COLOR_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["SCREEN_TEXTURE"] = "#define SCREEN_TEXTURE_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["SCREEN_TEXTURE"] = "#define SCREEN_TEXTURE_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["SCREEN_UV"] = "#define SCREEN_UV_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["SCREEN_UV"] = "#define SCREEN_UV_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["SCREEN_PIXEL_SIZE"] = "@SCREEN_UV"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["SCREEN_PIXEL_SIZE"] = "@SCREEN_UV";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["NORMAL"] = "#define NORMAL_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["NORMAL"] = "#define NORMAL_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["NORMALMAP"] = "#define NORMALMAP_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["NORMALMAP"] = "#define NORMALMAP_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["LIGHT"] = "#define USE_LIGHT_SHADER_CODE\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["LIGHT"] = "#define USE_LIGHT_SHADER_CODE\n";
actions[VS::SHADER_CANVAS_ITEM].render_mode_defines["skip_vertex_transform"] = "#define SKIP_TRANSFORM_USED\n"; actions[RS::SHADER_CANVAS_ITEM].render_mode_defines["skip_vertex_transform"] = "#define SKIP_TRANSFORM_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["SHADOW_VEC"] = "#define SHADOW_VEC_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["SHADOW_VEC"] = "#define SHADOW_VEC_USED\n";
// Ported from GLES3 // Ported from GLES3
actions[VS::SHADER_CANVAS_ITEM].usage_defines["sinh"] = "#define SINH_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["sinh"] = "#define SINH_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["cosh"] = "#define COSH_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["cosh"] = "#define COSH_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["tanh"] = "#define TANH_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["tanh"] = "#define TANH_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["asinh"] = "#define ASINH_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["asinh"] = "#define ASINH_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["acosh"] = "#define ACOSH_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["acosh"] = "#define ACOSH_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["atanh"] = "#define ATANH_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["atanh"] = "#define ATANH_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["determinant"] = "#define DETERMINANT_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["determinant"] = "#define DETERMINANT_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["transpose"] = "#define TRANSPOSE_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["transpose"] = "#define TRANSPOSE_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["outerProduct"] = "#define OUTER_PRODUCT_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["outerProduct"] = "#define OUTER_PRODUCT_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["round"] = "#define ROUND_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["round"] = "#define ROUND_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["roundEven"] = "#define ROUND_EVEN_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["roundEven"] = "#define ROUND_EVEN_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["inverse"] = "#define INVERSE_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["inverse"] = "#define INVERSE_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["isinf"] = "#define IS_INF_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["isinf"] = "#define IS_INF_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["isnan"] = "#define IS_NAN_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["isnan"] = "#define IS_NAN_USED\n";
actions[VS::SHADER_CANVAS_ITEM].usage_defines["trunc"] = "#define TRUNC_USED\n"; actions[RS::SHADER_CANVAS_ITEM].usage_defines["trunc"] = "#define TRUNC_USED\n";
/** SPATIAL SHADER **/ /** SPATIAL SHADER **/
actions[VS::SHADER_SPATIAL].renames["WORLD_MATRIX"] = "world_transform"; actions[RS::SHADER_SPATIAL].renames["WORLD_MATRIX"] = "world_transform";
actions[VS::SHADER_SPATIAL].renames["INV_CAMERA_MATRIX"] = "camera_inverse_matrix"; actions[RS::SHADER_SPATIAL].renames["INV_CAMERA_MATRIX"] = "camera_inverse_matrix";
actions[VS::SHADER_SPATIAL].renames["CAMERA_MATRIX"] = "camera_matrix"; actions[RS::SHADER_SPATIAL].renames["CAMERA_MATRIX"] = "camera_matrix";
actions[VS::SHADER_SPATIAL].renames["PROJECTION_MATRIX"] = "projection_matrix"; actions[RS::SHADER_SPATIAL].renames["PROJECTION_MATRIX"] = "projection_matrix";
actions[VS::SHADER_SPATIAL].renames["INV_PROJECTION_MATRIX"] = "projection_inverse_matrix"; actions[RS::SHADER_SPATIAL].renames["INV_PROJECTION_MATRIX"] = "projection_inverse_matrix";
actions[VS::SHADER_SPATIAL].renames["MODELVIEW_MATRIX"] = "modelview"; actions[RS::SHADER_SPATIAL].renames["MODELVIEW_MATRIX"] = "modelview";
actions[VS::SHADER_SPATIAL].renames["VERTEX"] = "vertex.xyz"; actions[RS::SHADER_SPATIAL].renames["VERTEX"] = "vertex.xyz";
actions[VS::SHADER_SPATIAL].renames["NORMAL"] = "normal"; actions[RS::SHADER_SPATIAL].renames["NORMAL"] = "normal";
actions[VS::SHADER_SPATIAL].renames["TANGENT"] = "tangent"; actions[RS::SHADER_SPATIAL].renames["TANGENT"] = "tangent";
actions[VS::SHADER_SPATIAL].renames["BINORMAL"] = "binormal"; actions[RS::SHADER_SPATIAL].renames["BINORMAL"] = "binormal";
actions[VS::SHADER_SPATIAL].renames["POSITION"] = "position"; actions[RS::SHADER_SPATIAL].renames["POSITION"] = "position";
actions[VS::SHADER_SPATIAL].renames["UV"] = "uv_interp"; actions[RS::SHADER_SPATIAL].renames["UV"] = "uv_interp";
actions[VS::SHADER_SPATIAL].renames["UV2"] = "uv2_interp"; actions[RS::SHADER_SPATIAL].renames["UV2"] = "uv2_interp";
actions[VS::SHADER_SPATIAL].renames["COLOR"] = "color_interp"; actions[RS::SHADER_SPATIAL].renames["COLOR"] = "color_interp";
actions[VS::SHADER_SPATIAL].renames["POINT_SIZE"] = "point_size"; actions[RS::SHADER_SPATIAL].renames["POINT_SIZE"] = "point_size";
// gl_InstanceID is not available in OpenGL ES 2.0 // gl_InstanceID is not available in OpenGL ES 2.0
actions[VS::SHADER_SPATIAL].renames["INSTANCE_ID"] = "0"; actions[RS::SHADER_SPATIAL].renames["INSTANCE_ID"] = "0";
//builtins //builtins
actions[VS::SHADER_SPATIAL].renames["TIME"] = "time"; actions[RS::SHADER_SPATIAL].renames["TIME"] = "time";
actions[VS::SHADER_SPATIAL].renames["VIEWPORT_SIZE"] = "viewport_size"; actions[RS::SHADER_SPATIAL].renames["VIEWPORT_SIZE"] = "viewport_size";
actions[VS::SHADER_SPATIAL].renames["FRAGCOORD"] = "gl_FragCoord"; actions[RS::SHADER_SPATIAL].renames["FRAGCOORD"] = "gl_FragCoord";
actions[VS::SHADER_SPATIAL].renames["FRONT_FACING"] = "gl_FrontFacing"; actions[RS::SHADER_SPATIAL].renames["FRONT_FACING"] = "gl_FrontFacing";
actions[VS::SHADER_SPATIAL].renames["NORMALMAP"] = "normalmap"; actions[RS::SHADER_SPATIAL].renames["NORMALMAP"] = "normalmap";
actions[VS::SHADER_SPATIAL].renames["NORMALMAP_DEPTH"] = "normaldepth"; actions[RS::SHADER_SPATIAL].renames["NORMALMAP_DEPTH"] = "normaldepth";
actions[VS::SHADER_SPATIAL].renames["ALBEDO"] = "albedo"; actions[RS::SHADER_SPATIAL].renames["ALBEDO"] = "albedo";
actions[VS::SHADER_SPATIAL].renames["ALPHA"] = "alpha"; actions[RS::SHADER_SPATIAL].renames["ALPHA"] = "alpha";
actions[VS::SHADER_SPATIAL].renames["METALLIC"] = "metallic"; actions[RS::SHADER_SPATIAL].renames["METALLIC"] = "metallic";
actions[VS::SHADER_SPATIAL].renames["SPECULAR"] = "specular"; actions[RS::SHADER_SPATIAL].renames["SPECULAR"] = "specular";
actions[VS::SHADER_SPATIAL].renames["ROUGHNESS"] = "roughness"; actions[RS::SHADER_SPATIAL].renames["ROUGHNESS"] = "roughness";
actions[VS::SHADER_SPATIAL].renames["RIM"] = "rim"; actions[RS::SHADER_SPATIAL].renames["RIM"] = "rim";
actions[VS::SHADER_SPATIAL].renames["RIM_TINT"] = "rim_tint"; actions[RS::SHADER_SPATIAL].renames["RIM_TINT"] = "rim_tint";
actions[VS::SHADER_SPATIAL].renames["CLEARCOAT"] = "clearcoat"; actions[RS::SHADER_SPATIAL].renames["CLEARCOAT"] = "clearcoat";
actions[VS::SHADER_SPATIAL].renames["CLEARCOAT_GLOSS"] = "clearcoat_gloss"; actions[RS::SHADER_SPATIAL].renames["CLEARCOAT_GLOSS"] = "clearcoat_gloss";
actions[VS::SHADER_SPATIAL].renames["ANISOTROPY"] = "anisotropy"; actions[RS::SHADER_SPATIAL].renames["ANISOTROPY"] = "anisotropy";
actions[VS::SHADER_SPATIAL].renames["ANISOTROPY_FLOW"] = "anisotropy_flow"; actions[RS::SHADER_SPATIAL].renames["ANISOTROPY_FLOW"] = "anisotropy_flow";
actions[VS::SHADER_SPATIAL].renames["SSS_STRENGTH"] = "sss_strength"; actions[RS::SHADER_SPATIAL].renames["SSS_STRENGTH"] = "sss_strength";
actions[VS::SHADER_SPATIAL].renames["TRANSMISSION"] = "transmission"; actions[RS::SHADER_SPATIAL].renames["TRANSMISSION"] = "transmission";
actions[VS::SHADER_SPATIAL].renames["AO"] = "ao"; actions[RS::SHADER_SPATIAL].renames["AO"] = "ao";
actions[VS::SHADER_SPATIAL].renames["AO_LIGHT_AFFECT"] = "ao_light_affect"; actions[RS::SHADER_SPATIAL].renames["AO_LIGHT_AFFECT"] = "ao_light_affect";
actions[VS::SHADER_SPATIAL].renames["EMISSION"] = "emission"; actions[RS::SHADER_SPATIAL].renames["EMISSION"] = "emission";
actions[VS::SHADER_SPATIAL].renames["POINT_COORD"] = "gl_PointCoord"; actions[RS::SHADER_SPATIAL].renames["POINT_COORD"] = "gl_PointCoord";
actions[VS::SHADER_SPATIAL].renames["INSTANCE_CUSTOM"] = "instance_custom"; actions[RS::SHADER_SPATIAL].renames["INSTANCE_CUSTOM"] = "instance_custom";
actions[VS::SHADER_SPATIAL].renames["SCREEN_UV"] = "screen_uv"; actions[RS::SHADER_SPATIAL].renames["SCREEN_UV"] = "screen_uv";
actions[VS::SHADER_SPATIAL].renames["SCREEN_TEXTURE"] = "screen_texture"; actions[RS::SHADER_SPATIAL].renames["SCREEN_TEXTURE"] = "screen_texture";
actions[VS::SHADER_SPATIAL].renames["DEPTH_TEXTURE"] = "depth_texture"; actions[RS::SHADER_SPATIAL].renames["DEPTH_TEXTURE"] = "depth_texture";
// Defined in GLES3, but not available in GLES2 // Defined in GLES3, but not available in GLES2
//actions[VS::SHADER_SPATIAL].renames["DEPTH"] = "gl_FragDepth"; //actions[RS::SHADER_SPATIAL].renames["DEPTH"] = "gl_FragDepth";
actions[VS::SHADER_SPATIAL].renames["ALPHA_SCISSOR"] = "alpha_scissor"; actions[RS::SHADER_SPATIAL].renames["ALPHA_SCISSOR"] = "alpha_scissor";
actions[VS::SHADER_SPATIAL].renames["OUTPUT_IS_SRGB"] = "SHADER_IS_SRGB"; actions[RS::SHADER_SPATIAL].renames["OUTPUT_IS_SRGB"] = "SHADER_IS_SRGB";
//for light //for light
actions[VS::SHADER_SPATIAL].renames["VIEW"] = "view"; actions[RS::SHADER_SPATIAL].renames["VIEW"] = "view";
actions[VS::SHADER_SPATIAL].renames["LIGHT_COLOR"] = "light_color"; actions[RS::SHADER_SPATIAL].renames["LIGHT_COLOR"] = "light_color";
actions[VS::SHADER_SPATIAL].renames["LIGHT"] = "light"; actions[RS::SHADER_SPATIAL].renames["LIGHT"] = "light";
actions[VS::SHADER_SPATIAL].renames["ATTENUATION"] = "attenuation"; actions[RS::SHADER_SPATIAL].renames["ATTENUATION"] = "attenuation";
actions[VS::SHADER_SPATIAL].renames["DIFFUSE_LIGHT"] = "diffuse_light"; actions[RS::SHADER_SPATIAL].renames["DIFFUSE_LIGHT"] = "diffuse_light";
actions[VS::SHADER_SPATIAL].renames["SPECULAR_LIGHT"] = "specular_light"; actions[RS::SHADER_SPATIAL].renames["SPECULAR_LIGHT"] = "specular_light";
actions[VS::SHADER_SPATIAL].usage_defines["TANGENT"] = "#define ENABLE_TANGENT_INTERP\n"; actions[RS::SHADER_SPATIAL].usage_defines["TANGENT"] = "#define ENABLE_TANGENT_INTERP\n";
actions[VS::SHADER_SPATIAL].usage_defines["BINORMAL"] = "@TANGENT"; actions[RS::SHADER_SPATIAL].usage_defines["BINORMAL"] = "@TANGENT";
actions[VS::SHADER_SPATIAL].usage_defines["RIM"] = "#define LIGHT_USE_RIM\n"; actions[RS::SHADER_SPATIAL].usage_defines["RIM"] = "#define LIGHT_USE_RIM\n";
actions[VS::SHADER_SPATIAL].usage_defines["RIM_TINT"] = "@RIM"; actions[RS::SHADER_SPATIAL].usage_defines["RIM_TINT"] = "@RIM";
actions[VS::SHADER_SPATIAL].usage_defines["CLEARCOAT"] = "#define LIGHT_USE_CLEARCOAT\n"; actions[RS::SHADER_SPATIAL].usage_defines["CLEARCOAT"] = "#define LIGHT_USE_CLEARCOAT\n";
actions[VS::SHADER_SPATIAL].usage_defines["CLEARCOAT_GLOSS"] = "@CLEARCOAT"; actions[RS::SHADER_SPATIAL].usage_defines["CLEARCOAT_GLOSS"] = "@CLEARCOAT";
actions[VS::SHADER_SPATIAL].usage_defines["ANISOTROPY"] = "#define LIGHT_USE_ANISOTROPY\n"; actions[RS::SHADER_SPATIAL].usage_defines["ANISOTROPY"] = "#define LIGHT_USE_ANISOTROPY\n";
actions[VS::SHADER_SPATIAL].usage_defines["ANISOTROPY_FLOW"] = "@ANISOTROPY"; actions[RS::SHADER_SPATIAL].usage_defines["ANISOTROPY_FLOW"] = "@ANISOTROPY";
actions[VS::SHADER_SPATIAL].usage_defines["AO"] = "#define ENABLE_AO\n"; actions[RS::SHADER_SPATIAL].usage_defines["AO"] = "#define ENABLE_AO\n";
actions[VS::SHADER_SPATIAL].usage_defines["AO_LIGHT_AFFECT"] = "#define ENABLE_AO\n"; actions[RS::SHADER_SPATIAL].usage_defines["AO_LIGHT_AFFECT"] = "#define ENABLE_AO\n";
actions[VS::SHADER_SPATIAL].usage_defines["UV"] = "#define ENABLE_UV_INTERP\n"; actions[RS::SHADER_SPATIAL].usage_defines["UV"] = "#define ENABLE_UV_INTERP\n";
actions[VS::SHADER_SPATIAL].usage_defines["UV2"] = "#define ENABLE_UV2_INTERP\n"; actions[RS::SHADER_SPATIAL].usage_defines["UV2"] = "#define ENABLE_UV2_INTERP\n";
actions[VS::SHADER_SPATIAL].usage_defines["NORMALMAP"] = "#define ENABLE_NORMALMAP\n"; actions[RS::SHADER_SPATIAL].usage_defines["NORMALMAP"] = "#define ENABLE_NORMALMAP\n";
actions[VS::SHADER_SPATIAL].usage_defines["NORMALMAP_DEPTH"] = "@NORMALMAP"; actions[RS::SHADER_SPATIAL].usage_defines["NORMALMAP_DEPTH"] = "@NORMALMAP";
actions[VS::SHADER_SPATIAL].usage_defines["COLOR"] = "#define ENABLE_COLOR_INTERP\n"; actions[RS::SHADER_SPATIAL].usage_defines["COLOR"] = "#define ENABLE_COLOR_INTERP\n";
actions[VS::SHADER_SPATIAL].usage_defines["INSTANCE_CUSTOM"] = "#define ENABLE_INSTANCE_CUSTOM\n"; actions[RS::SHADER_SPATIAL].usage_defines["INSTANCE_CUSTOM"] = "#define ENABLE_INSTANCE_CUSTOM\n";
actions[VS::SHADER_SPATIAL].usage_defines["ALPHA_SCISSOR"] = "#define ALPHA_SCISSOR_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["ALPHA_SCISSOR"] = "#define ALPHA_SCISSOR_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["POSITION"] = "#define OVERRIDE_POSITION\n"; actions[RS::SHADER_SPATIAL].usage_defines["POSITION"] = "#define OVERRIDE_POSITION\n";
actions[VS::SHADER_SPATIAL].usage_defines["SSS_STRENGTH"] = "#define ENABLE_SSS\n"; actions[RS::SHADER_SPATIAL].usage_defines["SSS_STRENGTH"] = "#define ENABLE_SSS\n";
actions[VS::SHADER_SPATIAL].usage_defines["TRANSMISSION"] = "#define TRANSMISSION_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["TRANSMISSION"] = "#define TRANSMISSION_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["SCREEN_TEXTURE"] = "#define SCREEN_TEXTURE_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["SCREEN_TEXTURE"] = "#define SCREEN_TEXTURE_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["DEPTH_TEXTURE"] = "#define DEPTH_TEXTURE_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["DEPTH_TEXTURE"] = "#define DEPTH_TEXTURE_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["SCREEN_UV"] = "#define SCREEN_UV_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["SCREEN_UV"] = "#define SCREEN_UV_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["DIFFUSE_LIGHT"] = "#define USE_LIGHT_SHADER_CODE\n"; actions[RS::SHADER_SPATIAL].usage_defines["DIFFUSE_LIGHT"] = "#define USE_LIGHT_SHADER_CODE\n";
actions[VS::SHADER_SPATIAL].usage_defines["SPECULAR_LIGHT"] = "#define USE_LIGHT_SHADER_CODE\n"; actions[RS::SHADER_SPATIAL].usage_defines["SPECULAR_LIGHT"] = "#define USE_LIGHT_SHADER_CODE\n";
// Ported from GLES3 // Ported from GLES3
actions[VS::SHADER_SPATIAL].usage_defines["sinh"] = "#define SINH_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["sinh"] = "#define SINH_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["cosh"] = "#define COSH_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["cosh"] = "#define COSH_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["tanh"] = "#define TANH_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["tanh"] = "#define TANH_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["asinh"] = "#define ASINH_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["asinh"] = "#define ASINH_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["acosh"] = "#define ACOSH_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["acosh"] = "#define ACOSH_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["atanh"] = "#define ATANH_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["atanh"] = "#define ATANH_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["determinant"] = "#define DETERMINANT_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["determinant"] = "#define DETERMINANT_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["transpose"] = "#define TRANSPOSE_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["transpose"] = "#define TRANSPOSE_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["outerProduct"] = "#define OUTER_PRODUCT_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["outerProduct"] = "#define OUTER_PRODUCT_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["round"] = "#define ROUND_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["round"] = "#define ROUND_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["roundEven"] = "#define ROUND_EVEN_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["roundEven"] = "#define ROUND_EVEN_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["inverse"] = "#define INVERSE_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["inverse"] = "#define INVERSE_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["isinf"] = "#define IS_INF_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["isinf"] = "#define IS_INF_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["isnan"] = "#define IS_NAN_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["isnan"] = "#define IS_NAN_USED\n";
actions[VS::SHADER_SPATIAL].usage_defines["trunc"] = "#define TRUNC_USED\n"; actions[RS::SHADER_SPATIAL].usage_defines["trunc"] = "#define TRUNC_USED\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["skip_vertex_transform"] = "#define SKIP_TRANSFORM_USED\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["skip_vertex_transform"] = "#define SKIP_TRANSFORM_USED\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["world_vertex_coords"] = "#define VERTEX_WORLD_COORDS_USED\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["world_vertex_coords"] = "#define VERTEX_WORLD_COORDS_USED\n";
// Defined in GLES3, could be implemented in GLES2 too if there's a need for it // Defined in GLES3, could be implemented in GLES2 too if there's a need for it
//actions[VS::SHADER_SPATIAL].render_mode_defines["ensure_correct_normals"] = "#define ENSURE_CORRECT_NORMALS\n"; //actions[RS::SHADER_SPATIAL].render_mode_defines["ensure_correct_normals"] = "#define ENSURE_CORRECT_NORMALS\n";
// Defined in GLES3, might not be possible in GLES2 as gl_FrontFacing is not available // Defined in GLES3, might not be possible in GLES2 as gl_FrontFacing is not available
//actions[VS::SHADER_SPATIAL].render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n"; //actions[RS::SHADER_SPATIAL].render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n";
//actions[VS::SHADER_SPATIAL].render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n"; //actions[RS::SHADER_SPATIAL].render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n";
bool force_lambert = GLOBAL_GET("rendering/quality/shading/force_lambert_over_burley"); bool force_lambert = GLOBAL_GET("rendering/quality/shading/force_lambert_over_burley");
if (!force_lambert) { if (!force_lambert) {
actions[VS::SHADER_SPATIAL].render_mode_defines["diffuse_burley"] = "#define DIFFUSE_BURLEY\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_burley"] = "#define DIFFUSE_BURLEY\n";
} }
actions[VS::SHADER_SPATIAL].render_mode_defines["diffuse_oren_nayar"] = "#define DIFFUSE_OREN_NAYAR\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_oren_nayar"] = "#define DIFFUSE_OREN_NAYAR\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["diffuse_lambert_wrap"] = "#define DIFFUSE_LAMBERT_WRAP\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_lambert_wrap"] = "#define DIFFUSE_LAMBERT_WRAP\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["diffuse_toon"] = "#define DIFFUSE_TOON\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["diffuse_toon"] = "#define DIFFUSE_TOON\n";
bool force_blinn = GLOBAL_GET("rendering/quality/shading/force_blinn_over_ggx"); bool force_blinn = GLOBAL_GET("rendering/quality/shading/force_blinn_over_ggx");
if (!force_blinn) { if (!force_blinn) {
actions[VS::SHADER_SPATIAL].render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_SCHLICK_GGX\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_SCHLICK_GGX\n";
} else { } else {
actions[VS::SHADER_SPATIAL].render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_BLINN\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_BLINN\n";
} }
actions[VS::SHADER_SPATIAL].render_mode_defines["specular_blinn"] = "#define SPECULAR_BLINN\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["specular_blinn"] = "#define SPECULAR_BLINN\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["specular_phong"] = "#define SPECULAR_PHONG\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["specular_phong"] = "#define SPECULAR_PHONG\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["specular_toon"] = "#define SPECULAR_TOON\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["specular_toon"] = "#define SPECULAR_TOON\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["specular_disabled"] = "#define SPECULAR_DISABLED\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["specular_disabled"] = "#define SPECULAR_DISABLED\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["shadows_disabled"] = "#define SHADOWS_DISABLED\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["shadows_disabled"] = "#define SHADOWS_DISABLED\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["ambient_light_disabled"] = "#define AMBIENT_LIGHT_DISABLED\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["ambient_light_disabled"] = "#define AMBIENT_LIGHT_DISABLED\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["shadow_to_opacity"] = "#define USE_SHADOW_TO_OPACITY\n"; actions[RS::SHADER_SPATIAL].render_mode_defines["shadow_to_opacity"] = "#define USE_SHADOW_TO_OPACITY\n";
// No defines for particle shaders in GLES2, there are no GPU particles // No defines for particle shaders in GLES2, there are no GPU particles

View File

@ -33,9 +33,9 @@
#include "core/pair.h" #include "core/pair.h"
#include "core/string_builder.h" #include "core/string_builder.h"
#include "servers/visual/shader_language.h" #include "servers/rendering/shader_language.h"
#include "servers/visual/shader_types.h" #include "servers/rendering/shader_types.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
class ShaderCompilerGLES2 { class ShaderCompilerGLES2 {
public: public:
@ -91,10 +91,10 @@ private:
Set<StringName> used_rmode_defines; Set<StringName> used_rmode_defines;
Set<StringName> internal_functions; Set<StringName> internal_functions;
DefaultIdentifierActions actions[VS::SHADER_MAX]; DefaultIdentifierActions actions[RS::SHADER_MAX];
public: public:
Error compile(VS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code); Error compile(RS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code);
ShaderCompilerGLES2(); ShaderCompilerGLES2();
}; };

View File

@ -44,7 +44,7 @@
#include "core/math/camera_matrix.h" #include "core/math/camera_matrix.h"
#include "core/pair.h" #include "core/pair.h"
#include "core/variant.h" #include "core/variant.h"
#include "servers/visual/shader_language.h" #include "servers/rendering/shader_language.h"
#include <stdio.h> #include <stdio.h>

View File

@ -2,7 +2,7 @@
[vertex] [vertex]
/* /*
from VisualServer: from RenderingServer:
ARRAY_VERTEX=0, ARRAY_VERTEX=0,
ARRAY_NORMAL=1, ARRAY_NORMAL=1,

View File

@ -41,7 +41,7 @@
#include "drivers/unix/net_socket_posix.h" #include "drivers/unix/net_socket_posix.h"
#include "drivers/unix/rw_lock_posix.h" #include "drivers/unix/rw_lock_posix.h"
#include "drivers/unix/thread_posix.h" #include "drivers/unix/thread_posix.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
#ifdef __APPLE__ #ifdef __APPLE__
#include <mach-o/dyld.h> #include <mach-o/dyld.h>

View File

@ -34,7 +34,7 @@
#include "core/oa_hash_map.h" #include "core/oa_hash_map.h"
#include "core/os/thread_safe.h" #include "core/os/thread_safe.h"
#include "core/rid_owner.h" #include "core/rid_owner.h"
#include "servers/visual/rendering_device.h" #include "servers/rendering/rendering_device.h"
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
#define _DEBUG #define _DEBUG

View File

@ -303,7 +303,7 @@ void AnimationTrackEditAudio::draw_key(int p_index, float p_pixels_sec, int p_x,
Vector<Color> color; Vector<Color> color;
color.push_back(Color(0.75, 0.75, 0.75)); color.push_back(Color(0.75, 0.75, 0.75));
VS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, color); RS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, color);
if (p_selected) { if (p_selected) {
Color accent = get_theme_color("accent_color", "Editor"); Color accent = get_theme_color("accent_color", "Editor");
@ -673,7 +673,7 @@ void AnimationTrackEditSubAnim::draw_key(int p_index, float p_pixels_sec, int p_
} }
if (lines.size() > 2) { if (lines.size() > 2) {
VS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, colorv); RS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, colorv);
} }
int limit = to_x - from_x - 4; int limit = to_x - from_x - 4;
@ -926,7 +926,7 @@ void AnimationTrackEditTypeAudio::draw_key(int p_index, float p_pixels_sec, int
Vector<Color> color; Vector<Color> color;
color.push_back(Color(0.75, 0.75, 0.75)); color.push_back(Color(0.75, 0.75, 0.75));
VS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, color); RS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, color);
Color cut_color = get_theme_color("accent_color", "Editor"); Color cut_color = get_theme_color("accent_color", "Editor");
cut_color.a = 0.7; cut_color.a = 0.7;
@ -1255,7 +1255,7 @@ void AnimationTrackEditTypeAnimation::draw_key(int p_index, float p_pixels_sec,
} }
if (lines.size() > 2) { if (lines.size() > 2) {
VS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, colorv); RS::get_singleton()->canvas_item_add_multiline(get_canvas_item(), lines, colorv);
} }
int limit = to_x - from_x - 4; int limit = to_x - from_x - 4;

View File

@ -1569,7 +1569,7 @@ void EditorInspector::update_tree() {
} else if (!(p.usage & PROPERTY_USAGE_EDITOR) || _is_property_disabled_by_feature_profile(p.name)) } else if (!(p.usage & PROPERTY_USAGE_EDITOR) || _is_property_disabled_by_feature_profile(p.name))
continue; continue;
if (p.usage & PROPERTY_USAGE_HIGH_END_GFX && VS::get_singleton()->is_low_end()) if (p.usage & PROPERTY_USAGE_HIGH_END_GFX && RS::get_singleton()->is_low_end())
continue; //do not show this property in low end gfx continue; //do not show this property in low end gfx
if (p.name == "script" && (hide_script || bool(object->call("_hide_script_from_inspector")))) { if (p.name == "script" && (hide_script || bool(object->call("_hide_script_from_inspector")))) {

View File

@ -61,9 +61,9 @@
#include "scene/gui/texture_progress.h" #include "scene/gui/texture_progress.h"
#include "scene/gui/tool_button.h" #include "scene/gui/tool_button.h"
#include "scene/resources/packed_scene.h" #include "scene/resources/packed_scene.h"
#include "servers/navigation_2d_server.h" #include "servers/navigation_server_2d.h"
#include "servers/navigation_server.h" #include "servers/navigation_server_3d.h"
#include "servers/physics_2d_server.h" #include "servers/physics_server_2d.h"
#include "editor/audio_stream_preview.h" #include "editor/audio_stream_preview.h"
#include "editor/debugger/editor_debugger_node.h" #include "editor/debugger/editor_debugger_node.h"
@ -358,13 +358,13 @@ void EditorNode::_notification(int p_what) {
scene_root->set_default_canvas_item_texture_repeat(tr); scene_root->set_default_canvas_item_texture_repeat(tr);
} }
VS::DOFBokehShape dof_shape = VS::DOFBokehShape(int(GLOBAL_GET("rendering/quality/filters/depth_of_field_bokeh_shape"))); RS::DOFBokehShape dof_shape = RS::DOFBokehShape(int(GLOBAL_GET("rendering/quality/filters/depth_of_field_bokeh_shape")));
VS::get_singleton()->camera_effects_set_dof_blur_bokeh_shape(dof_shape); RS::get_singleton()->camera_effects_set_dof_blur_bokeh_shape(dof_shape);
VS::DOFBlurQuality dof_quality = VS::DOFBlurQuality(int(GLOBAL_GET("rendering/quality/filters/depth_of_field_bokeh_quality"))); RS::DOFBlurQuality dof_quality = RS::DOFBlurQuality(int(GLOBAL_GET("rendering/quality/filters/depth_of_field_bokeh_quality")));
bool dof_jitter = GLOBAL_GET("rendering/quality/filters/depth_of_field_use_jitter"); bool dof_jitter = GLOBAL_GET("rendering/quality/filters/depth_of_field_use_jitter");
VS::get_singleton()->camera_effects_set_dof_blur_quality(dof_quality, dof_jitter); RS::get_singleton()->camera_effects_set_dof_blur_quality(dof_quality, dof_jitter);
VS::get_singleton()->environment_set_ssao_quality(VS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size")); RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/quality/ssao/quality"))), GLOBAL_GET("rendering/quality/ssao/half_size"));
VS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter"), GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter_curve")); RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter"), GLOBAL_GET("rendering/quality/filters/screen_space_roughness_limiter_curve"));
} }
ResourceImporterTexture::get_singleton()->update_imports(); ResourceImporterTexture::get_singleton()->update_imports();
@ -404,9 +404,9 @@ void EditorNode::_notification(int p_what) {
_initializing_addons = false; _initializing_addons = false;
} }
VisualServer::get_singleton()->viewport_set_hide_scenario(get_scene_root()->get_viewport_rid(), true); RenderingServer::get_singleton()->viewport_set_hide_scenario(get_scene_root()->get_viewport_rid(), true);
VisualServer::get_singleton()->viewport_set_hide_canvas(get_scene_root()->get_viewport_rid(), true); RenderingServer::get_singleton()->viewport_set_hide_canvas(get_scene_root()->get_viewport_rid(), true);
VisualServer::get_singleton()->viewport_set_disable_environment(get_viewport()->get_viewport_rid(), true); RenderingServer::get_singleton()->viewport_set_disable_environment(get_viewport()->get_viewport_rid(), true);
feature_profile_manager->notify_changed(); feature_profile_manager->notify_changed();
@ -5530,12 +5530,12 @@ EditorNode::EditorNode() {
InputFilter::get_singleton()->set_use_accumulated_input(true); InputFilter::get_singleton()->set_use_accumulated_input(true);
Resource::_get_local_scene_func = _resource_get_edited_scene; Resource::_get_local_scene_func = _resource_get_edited_scene;
VisualServer::get_singleton()->set_debug_generate_wireframes(true); RenderingServer::get_singleton()->set_debug_generate_wireframes(true);
NavigationServer::get_singleton()->set_active(false); // no nav by default if editor NavigationServer3D::get_singleton()->set_active(false); // no nav by default if editor
PhysicsServer::get_singleton()->set_active(false); // no physics by default if editor PhysicsServer3D::get_singleton()->set_active(false); // no physics by default if editor
Physics2DServer::get_singleton()->set_active(false); // no physics by default if editor PhysicsServer2D::get_singleton()->set_active(false); // no physics by default if editor
ScriptServer::set_scripting_enabled(false); // no scripting by default if editor ScriptServer::set_scripting_enabled(false); // no scripting by default if editor
EditorHelp::generate_doc(); //before any editor classes are created EditorHelp::generate_doc(); //before any editor classes are created
@ -6011,7 +6011,7 @@ EditorNode::EditorNode() {
scene_root = memnew(SubViewport); scene_root = memnew(SubViewport);
//scene_root->set_usage(Viewport::USAGE_2D); canvas BG mode prevents usage of this as 2D //scene_root->set_usage(Viewport::USAGE_2D); canvas BG mode prevents usage of this as 2D
VisualServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport_rid(), true); RenderingServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport_rid(), true);
scene_root->set_disable_input(true); scene_root->set_disable_input(true);
scene_root->set_as_audio_listener_2d(true); scene_root->set_as_audio_listener_2d(true);

View File

@ -41,7 +41,7 @@
#include "plugins/node_3d_editor_plugin.h" #include "plugins/node_3d_editor_plugin.h"
#include "scene/3d/camera_3d.h" #include "scene/3d/camera_3d.h"
#include "scene/gui/popup_menu.h" #include "scene/gui/popup_menu.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
Array EditorInterface::_make_mesh_previews(const Array &p_meshes, int p_preview_size) { Array EditorInterface::_make_mesh_previews(const Array &p_meshes, int p_preview_size) {
@ -64,25 +64,25 @@ Vector<Ref<Texture2D>> EditorInterface::make_mesh_previews(const Vector<Ref<Mesh
int size = p_preview_size; int size = p_preview_size;
RID scenario = VS::get_singleton()->scenario_create(); RID scenario = RS::get_singleton()->scenario_create();
RID viewport = VS::get_singleton()->viewport_create(); RID viewport = RS::get_singleton()->viewport_create();
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_ALWAYS); RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ALWAYS);
VS::get_singleton()->viewport_set_scenario(viewport, scenario); RS::get_singleton()->viewport_set_scenario(viewport, scenario);
VS::get_singleton()->viewport_set_size(viewport, size, size); RS::get_singleton()->viewport_set_size(viewport, size, size);
VS::get_singleton()->viewport_set_transparent_background(viewport, true); RS::get_singleton()->viewport_set_transparent_background(viewport, true);
VS::get_singleton()->viewport_set_active(viewport, true); RS::get_singleton()->viewport_set_active(viewport, true);
RID viewport_texture = VS::get_singleton()->viewport_get_texture(viewport); RID viewport_texture = RS::get_singleton()->viewport_get_texture(viewport);
RID camera = VS::get_singleton()->camera_create(); RID camera = RS::get_singleton()->camera_create();
VS::get_singleton()->viewport_attach_camera(viewport, camera); RS::get_singleton()->viewport_attach_camera(viewport, camera);
RID light = VS::get_singleton()->directional_light_create(); RID light = RS::get_singleton()->directional_light_create();
RID light_instance = VS::get_singleton()->instance_create2(light, scenario); RID light_instance = RS::get_singleton()->instance_create2(light, scenario);
RID light2 = VS::get_singleton()->directional_light_create(); RID light2 = RS::get_singleton()->directional_light_create();
VS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7)); RS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7));
RID light_instance2 = VS::get_singleton()->instance_create2(light2, scenario); RID light_instance2 = RS::get_singleton()->instance_create2(light2, scenario);
EditorProgress ep("mlib", TTR("Creating Mesh Previews"), p_meshes.size()); EditorProgress ep("mlib", TTR("Creating Mesh Previews"), p_meshes.size());
@ -101,8 +101,8 @@ Vector<Ref<Texture2D>> EditorInterface::make_mesh_previews(const Vector<Ref<Mesh
mesh_xform = (*p_transforms)[i]; mesh_xform = (*p_transforms)[i];
} }
RID inst = VS::get_singleton()->instance_create2(mesh->get_rid(), scenario); RID inst = RS::get_singleton()->instance_create2(mesh->get_rid(), scenario);
VS::get_singleton()->instance_set_transform(inst, mesh_xform); RS::get_singleton()->instance_set_transform(inst, mesh_xform);
AABB aabb = mesh->get_aabb(); AABB aabb = mesh->get_aabb();
Vector3 ofs = aabb.position + aabb.size * 0.5; Vector3 ofs = aabb.position + aabb.size * 0.5;
@ -121,32 +121,32 @@ Vector<Ref<Texture2D>> EditorInterface::make_mesh_previews(const Vector<Ref<Mesh
xform.invert(); xform.invert();
xform = mesh_xform * xform; xform = mesh_xform * xform;
VS::get_singleton()->camera_set_transform(camera, xform * Transform(Basis(), Vector3(0, 0, 3))); RS::get_singleton()->camera_set_transform(camera, xform * Transform(Basis(), Vector3(0, 0, 3)));
VS::get_singleton()->camera_set_orthogonal(camera, m * 2, 0.01, 1000.0); RS::get_singleton()->camera_set_orthogonal(camera, m * 2, 0.01, 1000.0);
VS::get_singleton()->instance_set_transform(light_instance, xform * Transform().looking_at(Vector3(-2, -1, -1), Vector3(0, 1, 0))); RS::get_singleton()->instance_set_transform(light_instance, xform * Transform().looking_at(Vector3(-2, -1, -1), Vector3(0, 1, 0)));
VS::get_singleton()->instance_set_transform(light_instance2, xform * Transform().looking_at(Vector3(+1, -1, -2), Vector3(0, 1, 0))); RS::get_singleton()->instance_set_transform(light_instance2, xform * Transform().looking_at(Vector3(+1, -1, -2), Vector3(0, 1, 0)));
ep.step(TTR("Thumbnail..."), i); ep.step(TTR("Thumbnail..."), i);
Main::iteration(); Main::iteration();
Main::iteration(); Main::iteration();
Ref<Image> img = VS::get_singleton()->texture_2d_get(viewport_texture); Ref<Image> img = RS::get_singleton()->texture_2d_get(viewport_texture);
ERR_CONTINUE(!img.is_valid() || img->empty()); ERR_CONTINUE(!img.is_valid() || img->empty());
Ref<ImageTexture> it(memnew(ImageTexture)); Ref<ImageTexture> it(memnew(ImageTexture));
it->create_from_image(img); it->create_from_image(img);
VS::get_singleton()->free(inst); RS::get_singleton()->free(inst);
textures.push_back(it); textures.push_back(it);
} }
VS::get_singleton()->free(viewport); RS::get_singleton()->free(viewport);
VS::get_singleton()->free(light); RS::get_singleton()->free(light);
VS::get_singleton()->free(light_instance); RS::get_singleton()->free(light_instance);
VS::get_singleton()->free(light2); RS::get_singleton()->free(light2);
VS::get_singleton()->free(light_instance2); RS::get_singleton()->free(light_instance2);
VS::get_singleton()->free(camera); RS::get_singleton()->free(camera);
VS::get_singleton()->free(scenario); RS::get_singleton()->free(scenario);
return textures; return textures;
} }

View File

@ -465,7 +465,7 @@ void EditorResourcePreview::stop() {
preview_sem.post(); preview_sem.post();
while (!exited) { while (!exited) {
OS::get_singleton()->delay_usec(10000); OS::get_singleton()->delay_usec(10000);
VisualServer::get_singleton()->sync(); //sync pending stuff, as thread may be blocked on visual server RenderingServer::get_singleton()->sync(); //sync pending stuff, as thread may be blocked on visual server
} }
Thread::wait_to_finish(thread); Thread::wait_to_finish(thread);
memdelete(thread); memdelete(thread);

View File

@ -922,10 +922,10 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref<ArrayMesh> &p_me
if (has_weights) { if (has_weights) {
Vector<float> weights; Vector<float> weights;
Vector<int> bones; Vector<int> bones;
weights.resize(VS::ARRAY_WEIGHTS_SIZE); weights.resize(RS::ARRAY_WEIGHTS_SIZE);
bones.resize(VS::ARRAY_WEIGHTS_SIZE); bones.resize(RS::ARRAY_WEIGHTS_SIZE);
//float sum=0.0; //float sum=0.0;
for (int l = 0; l < VS::ARRAY_WEIGHTS_SIZE; l++) { for (int l = 0; l < RS::ARRAY_WEIGHTS_SIZE; l++) {
if (l < vertex_array[k].weights.size()) { if (l < vertex_array[k].weights.size()) {
weights.write[l] = vertex_array[k].weights[l].weight; weights.write[l] = vertex_array[k].weights[l].weight;
bones.write[l] = vertex_array[k].weights[l].bone_idx; bones.write[l] = vertex_array[k].weights[l].bone_idx;
@ -963,7 +963,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref<ArrayMesh> &p_me
//////////////////////////// ////////////////////////////
Array d = surftool->commit_to_arrays(); Array d = surftool->commit_to_arrays();
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
Array mr; Array mr;

View File

@ -36,7 +36,7 @@
#include "editor/editor_file_system.h" #include "editor/editor_file_system.h"
#include "editor/editor_node.h" #include "editor/editor_node.h"
void ResourceImporterTexture::_texture_reimport_roughness(const Ref<StreamTexture> &p_tex, const String &p_normal_path, VS::TextureDetectRoughnessChannel p_channel) { void ResourceImporterTexture::_texture_reimport_roughness(const Ref<StreamTexture> &p_tex, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_channel) {
MutexLock lock(singleton->mutex); MutexLock lock(singleton->mutex);

View File

@ -35,7 +35,7 @@
#include "core/io/resource_importer.h" #include "core/io/resource_importer.h"
#include "core/os/file_access.h" #include "core/os/file_access.h"
#include "scene/resources/texture.h" #include "scene/resources/texture.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
class StreamTexture; class StreamTexture;
@ -63,16 +63,16 @@ protected:
int flags; int flags;
String normal_path_for_roughness; String normal_path_for_roughness;
VS::TextureDetectRoughnessChannel channel_for_roughness; RS::TextureDetectRoughnessChannel channel_for_roughness;
MakeInfo() { MakeInfo() {
flags = 0; flags = 0;
channel_for_roughness = VS::TEXTURE_DETECT_ROUGNHESS_R; channel_for_roughness = RS::TEXTURE_DETECT_ROUGNHESS_R;
} }
}; };
Map<StringName, MakeInfo> make_flags; Map<StringName, MakeInfo> make_flags;
static void _texture_reimport_roughness(const Ref<StreamTexture> &p_tex, const String &p_normal_path, VisualServer::TextureDetectRoughnessChannel p_channel); static void _texture_reimport_roughness(const Ref<StreamTexture> &p_tex, const String &p_normal_path, RenderingServer::TextureDetectRoughnessChannel p_channel);
static void _texture_reimport_3d(const Ref<StreamTexture> &p_tex); static void _texture_reimport_3d(const Ref<StreamTexture> &p_tex);
static void _texture_reimport_normal(const Ref<StreamTexture> &p_tex); static void _texture_reimport_normal(const Ref<StreamTexture> &p_tex);

View File

@ -86,7 +86,7 @@ void EditorNode3DGizmo::clear() {
for (int i = 0; i < instances.size(); i++) { for (int i = 0; i < instances.size(); i++) {
if (instances[i].instance.is_valid()) if (instances[i].instance.is_valid())
VS::get_singleton()->free(instances[i].instance); RS::get_singleton()->free(instances[i].instance);
} }
billboard_handle = false; billboard_handle = false;
@ -168,16 +168,16 @@ void EditorNode3DGizmo::set_spatial_node(Node3D *p_node) {
void EditorNode3DGizmo::Instance::create_instance(Node3D *p_base, bool p_hidden) { void EditorNode3DGizmo::Instance::create_instance(Node3D *p_base, bool p_hidden) {
instance = VS::get_singleton()->instance_create2(mesh->get_rid(), p_base->get_world()->get_scenario()); instance = RS::get_singleton()->instance_create2(mesh->get_rid(), p_base->get_world()->get_scenario());
VS::get_singleton()->instance_attach_object_instance_id(instance, p_base->get_instance_id()); RS::get_singleton()->instance_attach_object_instance_id(instance, p_base->get_instance_id());
if (skin_reference.is_valid()) { if (skin_reference.is_valid()) {
VS::get_singleton()->instance_attach_skeleton(instance, skin_reference->get_skeleton()); RS::get_singleton()->instance_attach_skeleton(instance, skin_reference->get_skeleton());
} }
if (extra_margin) if (extra_margin)
VS::get_singleton()->instance_set_extra_visibility_margin(instance, 1); RS::get_singleton()->instance_set_extra_visibility_margin(instance, 1);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance, VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance, RS::SHADOW_CASTING_SETTING_OFF);
int layer = p_hidden ? 0 : 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER; int layer = p_hidden ? 0 : 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER;
VS::get_singleton()->instance_set_layer_mask(instance, layer); //gizmos are 26 RS::get_singleton()->instance_set_layer_mask(instance, layer); //gizmos are 26
} }
void EditorNode3DGizmo::add_mesh(const Ref<ArrayMesh> &p_mesh, bool p_billboard, const Ref<SkinReference> &p_skin_reference, const Ref<Material> &p_material) { void EditorNode3DGizmo::add_mesh(const Ref<ArrayMesh> &p_mesh, bool p_billboard, const Ref<SkinReference> &p_skin_reference, const Ref<Material> &p_material) {
@ -191,9 +191,9 @@ void EditorNode3DGizmo::add_mesh(const Ref<ArrayMesh> &p_mesh, bool p_billboard,
ins.material = p_material; ins.material = p_material;
if (valid) { if (valid) {
ins.create_instance(spatial_node, hidden); ins.create_instance(spatial_node, hidden);
VS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform()); RS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform());
if (ins.material.is_valid()) { if (ins.material.is_valid()) {
VS::get_singleton()->instance_geometry_set_material_override(ins.instance, p_material->get_rid()); RS::get_singleton()->instance_geometry_set_material_override(ins.instance, p_material->get_rid());
} }
} }
@ -246,7 +246,7 @@ void EditorNode3DGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mate
ins.mesh = mesh; ins.mesh = mesh;
if (valid) { if (valid) {
ins.create_instance(spatial_node, hidden); ins.create_instance(spatial_node, hidden);
VS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform()); RS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform());
} }
instances.push_back(ins); instances.push_back(ins);
@ -310,7 +310,7 @@ void EditorNode3DGizmo::add_unscaled_billboard(const Ref<Material> &p_material,
ins.billboard = true; ins.billboard = true;
if (valid) { if (valid) {
ins.create_instance(spatial_node, hidden); ins.create_instance(spatial_node, hidden);
VS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform()); RS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform());
} }
selectable_icon_size = p_scale; selectable_icon_size = p_scale;
@ -346,8 +346,8 @@ void EditorNode3DGizmo::add_handles(const Vector<Vector3> &p_handles, const Ref<
Ref<ArrayMesh> mesh = memnew(ArrayMesh); Ref<ArrayMesh> mesh = memnew(ArrayMesh);
Array a; Array a;
a.resize(VS::ARRAY_MAX); a.resize(RS::ARRAY_MAX);
a[VS::ARRAY_VERTEX] = p_handles; a[RS::ARRAY_VERTEX] = p_handles;
Vector<Color> colors; Vector<Color> colors;
{ {
colors.resize(p_handles.size()); colors.resize(p_handles.size());
@ -364,7 +364,7 @@ void EditorNode3DGizmo::add_handles(const Vector<Vector3> &p_handles, const Ref<
w[i] = col; w[i] = col;
} }
} }
a[VS::ARRAY_COLOR] = colors; a[RS::ARRAY_COLOR] = colors;
mesh->add_surface_from_arrays(Mesh::PRIMITIVE_POINTS, a); mesh->add_surface_from_arrays(Mesh::PRIMITIVE_POINTS, a);
mesh->surface_set_material(0, p_material); mesh->surface_set_material(0, p_material);
@ -384,7 +384,7 @@ void EditorNode3DGizmo::add_handles(const Vector<Vector3> &p_handles, const Ref<
ins.extra_margin = true; ins.extra_margin = true;
if (valid) { if (valid) {
ins.create_instance(spatial_node, hidden); ins.create_instance(spatial_node, hidden);
VS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform()); RS::get_singleton()->instance_set_transform(ins.instance, spatial_node->get_global_transform());
} }
instances.push_back(ins); instances.push_back(ins);
if (!p_secondary) { if (!p_secondary) {
@ -410,14 +410,14 @@ void EditorNode3DGizmo::add_solid_box(Ref<Material> &p_material, Vector3 p_size,
cubem.set_size(p_size); cubem.set_size(p_size);
Array arrays = cubem.surface_get_arrays(0); Array arrays = cubem.surface_get_arrays(0);
PackedVector3Array vertex = arrays[VS::ARRAY_VERTEX]; PackedVector3Array vertex = arrays[RS::ARRAY_VERTEX];
Vector3 *w = vertex.ptrw(); Vector3 *w = vertex.ptrw();
for (int i = 0; i < vertex.size(); ++i) { for (int i = 0; i < vertex.size(); ++i) {
w[i] += p_position; w[i] += p_position;
} }
arrays[VS::ARRAY_VERTEX] = vertex; arrays[RS::ARRAY_VERTEX] = vertex;
Ref<ArrayMesh> m = memnew(ArrayMesh); Ref<ArrayMesh> m = memnew(ArrayMesh);
m->add_surface_from_arrays(cubem.surface_get_primitive_type(0), arrays); m->add_surface_from_arrays(cubem.surface_get_primitive_type(0), arrays);
@ -708,7 +708,7 @@ void EditorNode3DGizmo::transform() {
ERR_FAIL_COND(!spatial_node); ERR_FAIL_COND(!spatial_node);
ERR_FAIL_COND(!valid); ERR_FAIL_COND(!valid);
for (int i = 0; i < instances.size(); i++) { for (int i = 0; i < instances.size(); i++) {
VS::get_singleton()->instance_set_transform(instances[i].instance, spatial_node->get_global_transform()); RS::get_singleton()->instance_set_transform(instances[i].instance, spatial_node->get_global_transform());
} }
} }
@ -720,7 +720,7 @@ void EditorNode3DGizmo::free() {
for (int i = 0; i < instances.size(); i++) { for (int i = 0; i < instances.size(); i++) {
if (instances[i].instance.is_valid()) if (instances[i].instance.is_valid())
VS::get_singleton()->free(instances[i].instance); RS::get_singleton()->free(instances[i].instance);
instances.write[i].instance = RID(); instances.write[i].instance = RID();
} }
@ -733,7 +733,7 @@ void EditorNode3DGizmo::set_hidden(bool p_hidden) {
hidden = p_hidden; hidden = p_hidden;
int layer = hidden ? 0 : 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER; int layer = hidden ? 0 : 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER;
for (int i = 0; i < instances.size(); ++i) { for (int i = 0; i < instances.size(); ++i) {
VS::get_singleton()->instance_set_layer_mask(instances[i].instance, layer); RS::get_singleton()->instance_set_layer_mask(instances[i].instance, layer);
} }
} }
@ -1585,7 +1585,7 @@ Position3DNode3DGizmoPlugin::Position3DNode3DGizmoPlugin() {
mat->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA); mat->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA);
Array d; Array d;
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
d[Mesh::ARRAY_VERTEX] = cursor_points; d[Mesh::ARRAY_VERTEX] = cursor_points;
d[Mesh::ARRAY_COLOR] = cursor_colors; d[Mesh::ARRAY_COLOR] = cursor_colors;
pos3d_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES, d); pos3d_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES, d);

View File

@ -41,7 +41,7 @@
#include "editor/plugins/canvas_item_editor_plugin.h" // For onion skinning. #include "editor/plugins/canvas_item_editor_plugin.h" // For onion skinning.
#include "editor/plugins/node_3d_editor_plugin.h" // For onion skinning. #include "editor/plugins/node_3d_editor_plugin.h" // For onion skinning.
#include "scene/main/window.h" #include "scene/main/window.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
void AnimationPlayerEditor::_node_removed(Node *p_node) { void AnimationPlayerEditor::_node_removed(Node *p_node) {
@ -947,8 +947,8 @@ void AnimationPlayerEditor::forward_canvas_force_draw_over_viewport(Control *p_o
alpha += alpha_step; alpha += alpha_step;
if (onion.captures_valid[cidx]) { if (onion.captures_valid[cidx]) {
VS::get_singleton()->canvas_item_add_texture_rect_region( RS::get_singleton()->canvas_item_add_texture_rect_region(
ci, dst_rect, VS::get_singleton()->viewport_get_texture(onion.captures[cidx]), src_rect, Color(1, 1, 1, alpha)); ci, dst_rect, RS::get_singleton()->viewport_get_texture(onion.captures[cidx]), src_rect, Color(1, 1, 1, alpha));
} }
cidx++; cidx++;
@ -961,8 +961,8 @@ void AnimationPlayerEditor::forward_canvas_force_draw_over_viewport(Control *p_o
alpha -= alpha_step; alpha -= alpha_step;
if (onion.captures_valid[cidx]) { if (onion.captures_valid[cidx]) {
VS::get_singleton()->canvas_item_add_texture_rect_region( RS::get_singleton()->canvas_item_add_texture_rect_region(
ci, dst_rect, VS::get_singleton()->viewport_get_texture(onion.captures[cidx]), src_rect, Color(1, 1, 1, alpha)); ci, dst_rect, RS::get_singleton()->viewport_get_texture(onion.captures[cidx]), src_rect, Color(1, 1, 1, alpha));
} }
cidx++; cidx++;
@ -1318,17 +1318,17 @@ void AnimationPlayerEditor::_allocate_onion_layers() {
bool is_present = onion.differences_only && i == captures - 1; bool is_present = onion.differences_only && i == captures - 1;
// Each capture is a viewport with a canvas item attached that renders a full-size rect with the contents of the main viewport. // Each capture is a viewport with a canvas item attached that renders a full-size rect with the contents of the main viewport.
onion.captures.write[i] = VS::get_singleton()->viewport_create(); onion.captures.write[i] = RS::get_singleton()->viewport_create();
VS::get_singleton()->viewport_set_size(onion.captures[i], capture_size.width, capture_size.height); RS::get_singleton()->viewport_set_size(onion.captures[i], capture_size.width, capture_size.height);
VS::get_singleton()->viewport_set_update_mode(onion.captures[i], VS::VIEWPORT_UPDATE_ALWAYS); RS::get_singleton()->viewport_set_update_mode(onion.captures[i], RS::VIEWPORT_UPDATE_ALWAYS);
VS::get_singleton()->viewport_set_transparent_background(onion.captures[i], !is_present); RS::get_singleton()->viewport_set_transparent_background(onion.captures[i], !is_present);
VS::get_singleton()->viewport_attach_canvas(onion.captures[i], onion.capture.canvas); RS::get_singleton()->viewport_attach_canvas(onion.captures[i], onion.capture.canvas);
} }
// Reset the capture canvas item to the current root viewport texture (defensive). // Reset the capture canvas item to the current root viewport texture (defensive).
VS::get_singleton()->canvas_item_clear(onion.capture.canvas_item); RS::get_singleton()->canvas_item_clear(onion.capture.canvas_item);
VS::get_singleton()->canvas_item_add_texture_rect(onion.capture.canvas_item, Rect2(Point2(), capture_size), get_tree()->get_root()->get_texture()->get_rid()); RS::get_singleton()->canvas_item_add_texture_rect(onion.capture.canvas_item, Rect2(Point2(), capture_size), get_tree()->get_root()->get_texture()->get_rid());
onion.capture_size = capture_size; onion.capture_size = capture_size;
} }
@ -1337,7 +1337,7 @@ void AnimationPlayerEditor::_free_onion_layers() {
for (int i = 0; i < onion.captures.size(); i++) { for (int i = 0; i < onion.captures.size(); i++) {
if (onion.captures[i].is_valid()) { if (onion.captures[i].is_valid()) {
VS::get_singleton()->free(onion.captures[i]); RS::get_singleton()->free(onion.captures[i]);
} }
} }
onion.captures.clear(); onion.captures.clear();
@ -1421,18 +1421,18 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() {
// Tweak the root viewport to ensure it's rendered before our target. // Tweak the root viewport to ensure it's rendered before our target.
RID root_vp = get_tree()->get_root()->get_viewport_rid(); RID root_vp = get_tree()->get_root()->get_viewport_rid();
Rect2 root_vp_screen_rect = Rect2(Vector2(), get_tree()->get_root()->get_size()); Rect2 root_vp_screen_rect = Rect2(Vector2(), get_tree()->get_root()->get_size());
VS::get_singleton()->viewport_attach_to_screen(root_vp, Rect2()); RS::get_singleton()->viewport_attach_to_screen(root_vp, Rect2());
VS::get_singleton()->viewport_set_update_mode(root_vp, VS::VIEWPORT_UPDATE_ALWAYS); RS::get_singleton()->viewport_set_update_mode(root_vp, RS::VIEWPORT_UPDATE_ALWAYS);
RID present_rid; RID present_rid;
if (onion.differences_only) { if (onion.differences_only) {
// Capture present scene as it is. // Capture present scene as it is.
VS::get_singleton()->canvas_item_set_material(onion.capture.canvas_item, RID()); RS::get_singleton()->canvas_item_set_material(onion.capture.canvas_item, RID());
present_rid = onion.captures[onion.captures.size() - 1]; present_rid = onion.captures[onion.captures.size() - 1];
VS::get_singleton()->viewport_set_active(present_rid, true); RS::get_singleton()->viewport_set_active(present_rid, true);
VS::get_singleton()->viewport_set_parent_viewport(root_vp, present_rid); RS::get_singleton()->viewport_set_parent_viewport(root_vp, present_rid);
VS::get_singleton()->draw(false); RS::get_singleton()->draw(false);
VS::get_singleton()->viewport_set_active(present_rid, false); RS::get_singleton()->viewport_set_active(present_rid, false);
} }
// Backup current animation state. // Backup current animation state.
@ -1441,10 +1441,10 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() {
// Render every past/future step with the capture shader. // Render every past/future step with the capture shader.
VS::get_singleton()->canvas_item_set_material(onion.capture.canvas_item, onion.capture.material->get_rid()); RS::get_singleton()->canvas_item_set_material(onion.capture.canvas_item, onion.capture.material->get_rid());
onion.capture.material->set_shader_param("bkg_color", GLOBAL_GET("rendering/environment/default_clear_color")); onion.capture.material->set_shader_param("bkg_color", GLOBAL_GET("rendering/environment/default_clear_color"));
onion.capture.material->set_shader_param("differences_only", onion.differences_only); onion.capture.material->set_shader_param("differences_only", onion.differences_only);
onion.capture.material->set_shader_param("present", onion.differences_only ? VS::get_singleton()->viewport_get_texture(present_rid) : RID()); onion.capture.material->set_shader_param("present", onion.differences_only ? RS::get_singleton()->viewport_get_texture(present_rid) : RID());
int step_off_a = onion.past ? -onion.steps : 0; int step_off_a = onion.past ? -onion.steps : 0;
int step_off_b = onion.future ? onion.steps : 0; int step_off_b = onion.future ? onion.steps : 0;
@ -1468,19 +1468,19 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() {
get_tree()->flush_transform_notifications(); // Needed for transforms of Node3Ds. get_tree()->flush_transform_notifications(); // Needed for transforms of Node3Ds.
values_backup.update_skeletons(); // Needed for Skeletons (2D & 3D). values_backup.update_skeletons(); // Needed for Skeletons (2D & 3D).
VS::get_singleton()->viewport_set_active(onion.captures[cidx], true); RS::get_singleton()->viewport_set_active(onion.captures[cidx], true);
VS::get_singleton()->viewport_set_parent_viewport(root_vp, onion.captures[cidx]); RS::get_singleton()->viewport_set_parent_viewport(root_vp, onion.captures[cidx]);
VS::get_singleton()->draw(false); RS::get_singleton()->draw(false);
VS::get_singleton()->viewport_set_active(onion.captures[cidx], false); RS::get_singleton()->viewport_set_active(onion.captures[cidx], false);
} }
cidx++; cidx++;
} }
// Restore root viewport. // Restore root viewport.
VS::get_singleton()->viewport_set_parent_viewport(root_vp, RID()); RS::get_singleton()->viewport_set_parent_viewport(root_vp, RID());
VS::get_singleton()->viewport_attach_to_screen(root_vp, root_vp_screen_rect); RS::get_singleton()->viewport_attach_to_screen(root_vp, root_vp_screen_rect);
VS::get_singleton()->viewport_set_update_mode(root_vp, VS::VIEWPORT_UPDATE_WHEN_VISIBLE); RS::get_singleton()->viewport_set_update_mode(root_vp, RS::VIEWPORT_UPDATE_WHEN_VISIBLE);
// Restore animation state // Restore animation state
// (Seeking with update=true wouldn't do the trick because the current value of the properties // (Seeking with update=true wouldn't do the trick because the current value of the properties
@ -1764,9 +1764,9 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay
onion.last_frame = 0; onion.last_frame = 0;
onion.can_overlay = false; onion.can_overlay = false;
onion.capture_size = Size2(); onion.capture_size = Size2();
onion.capture.canvas = VS::get_singleton()->canvas_create(); onion.capture.canvas = RS::get_singleton()->canvas_create();
onion.capture.canvas_item = VS::get_singleton()->canvas_item_create(); onion.capture.canvas_item = RS::get_singleton()->canvas_item_create();
VS::get_singleton()->canvas_item_set_parent(onion.capture.canvas_item, onion.capture.canvas); RS::get_singleton()->canvas_item_set_parent(onion.capture.canvas_item, onion.capture.canvas);
onion.capture.material = Ref<ShaderMaterial>(memnew(ShaderMaterial)); onion.capture.material = Ref<ShaderMaterial>(memnew(ShaderMaterial));
@ -1792,14 +1792,14 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay
COLOR = vec4(capture_samp.rgb * dir_color.rgb, bkg_mask * diff_mask); \ COLOR = vec4(capture_samp.rgb * dir_color.rgb, bkg_mask * diff_mask); \
} \ } \
"); ");
VS::get_singleton()->material_set_shader(onion.capture.material->get_rid(), onion.capture.shader->get_rid()); RS::get_singleton()->material_set_shader(onion.capture.material->get_rid(), onion.capture.shader->get_rid());
} }
AnimationPlayerEditor::~AnimationPlayerEditor() { AnimationPlayerEditor::~AnimationPlayerEditor() {
_free_onion_layers(); _free_onion_layers();
VS::get_singleton()->free(onion.capture.canvas); RS::get_singleton()->free(onion.capture.canvas);
VS::get_singleton()->free(onion.capture.canvas_item); RS::get_singleton()->free(onion.capture.canvas_item);
} }
void AnimationPlayerEditorPlugin::_notification(int p_what) { void AnimationPlayerEditorPlugin::_notification(int p_what) {

View File

@ -89,7 +89,7 @@ void AudioStreamEditor::_draw_preview() {
Vector<Color> color; Vector<Color> color;
color.push_back(get_theme_color("contrast_color_2", "Editor")); color.push_back(get_theme_color("contrast_color_2", "Editor"));
VS::get_singleton()->canvas_item_add_multiline(_preview->get_canvas_item(), lines, color); RS::get_singleton()->canvas_item_add_multiline(_preview->get_canvas_item(), lines, color);
} }
void AudioStreamEditor::_preview_changed(ObjectID p_which) { void AudioStreamEditor::_preview_changed(ObjectID p_which) {

View File

@ -3427,7 +3427,7 @@ void CanvasItemEditor::_draw_straight_line(Point2 p_from, Point2 p_to, Color p_c
} }
} }
if (points.size() >= 2) { if (points.size() >= 2) {
VisualServer::get_singleton()->canvas_item_add_line(ci, points[0], points[1], p_color); RenderingServer::get_singleton()->canvas_item_add_line(ci, points[0], points[1], p_color);
} }
} }
@ -3455,7 +3455,7 @@ void CanvasItemEditor::_draw_axis() {
}; };
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
VisualServer::get_singleton()->canvas_item_add_line(ci, screen_endpoints[i], screen_endpoints[(i + 1) % 4], area_axis_color); RenderingServer::get_singleton()->canvas_item_add_line(ci, screen_endpoints[i], screen_endpoints[(i + 1) % 4], area_axis_color);
} }
} }
} }
@ -3512,8 +3512,8 @@ void CanvasItemEditor::_draw_bones() {
outline_colors.push_back(bone_outline_color); outline_colors.push_back(bone_outline_color);
} }
VisualServer::get_singleton()->canvas_item_add_polygon(ci, bone_shape_outline, outline_colors); RenderingServer::get_singleton()->canvas_item_add_polygon(ci, bone_shape_outline, outline_colors);
VisualServer::get_singleton()->canvas_item_add_primitive(ci, bone_shape, colors, Vector<Vector2>(), RID()); RenderingServer::get_singleton()->canvas_item_add_primitive(ci, bone_shape, colors, Vector<Vector2>(), RID());
} }
} }
} }
@ -3744,7 +3744,7 @@ void CanvasItemEditor::_draw_viewport() {
} }
RID ci = viewport->get_canvas_item(); RID ci = viewport->get_canvas_item();
VisualServer::get_singleton()->canvas_item_add_set_transform(ci, Transform2D()); RenderingServer::get_singleton()->canvas_item_add_set_transform(ci, Transform2D());
EditorPluginList *over_plugin_list = editor->get_editor_plugins_over(); EditorPluginList *over_plugin_list = editor->get_editor_plugins_over();
if (!over_plugin_list->empty()) { if (!over_plugin_list->empty()) {
@ -4911,7 +4911,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
bool preview = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(PREVIEW_CANVAS_SCALE)); bool preview = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(PREVIEW_CANVAS_SCALE));
preview = !preview; preview = !preview;
VS::get_singleton()->canvas_set_disable_scale(!preview); RS::get_singleton()->canvas_set_disable_scale(!preview);
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(PREVIEW_CANVAS_SCALE), preview); view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(PREVIEW_CANVAS_SCALE), preview);
} break; } break;
@ -5818,13 +5818,13 @@ void CanvasItemEditorPlugin::make_visible(bool p_visible) {
if (p_visible) { if (p_visible) {
canvas_item_editor->show(); canvas_item_editor->show();
canvas_item_editor->set_physics_process(true); canvas_item_editor->set_physics_process(true);
VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(), false); RenderingServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(), false);
} else { } else {
canvas_item_editor->hide(); canvas_item_editor->hide();
canvas_item_editor->set_physics_process(false); canvas_item_editor->set_physics_process(false);
VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(), true); RenderingServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(), true);
} }
} }
@ -6307,7 +6307,7 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
label_desc->hide(); label_desc->hide();
canvas_item_editor->get_controls_container()->add_child(label_desc); canvas_item_editor->get_controls_container()->add_child(label_desc);
VS::get_singleton()->canvas_set_disable_scale(true); RS::get_singleton()->canvas_set_disable_scale(true);
} }
CanvasItemEditorViewport::~CanvasItemEditorViewport() { CanvasItemEditorViewport::~CanvasItemEditorViewport() {

View File

@ -328,19 +328,19 @@ Ref<Texture2D> EditorMaterialPreviewPlugin::generate(const RES &p_from, const Si
if (material->get_shader_mode() == Shader::MODE_SPATIAL) { if (material->get_shader_mode() == Shader::MODE_SPATIAL) {
VS::get_singleton()->mesh_surface_set_material(sphere, 0, material->get_rid()); RS::get_singleton()->mesh_surface_set_material(sphere, 0, material->get_rid());
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_ONCE); //once used for capture RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ONCE); //once used for capture
preview_done = false; preview_done = false;
VS::get_singleton()->request_frame_drawn_callback(const_cast<EditorMaterialPreviewPlugin *>(this), "_preview_done", Variant()); RS::get_singleton()->request_frame_drawn_callback(const_cast<EditorMaterialPreviewPlugin *>(this), "_preview_done", Variant());
while (!preview_done) { while (!preview_done) {
OS::get_singleton()->delay_usec(10); OS::get_singleton()->delay_usec(10);
} }
Ref<Image> img = VS::get_singleton()->texture_2d_get(viewport_texture); Ref<Image> img = RS::get_singleton()->texture_2d_get(viewport_texture);
VS::get_singleton()->mesh_surface_set_material(sphere, 0, RID()); RS::get_singleton()->mesh_surface_set_material(sphere, 0, RID());
ERR_FAIL_COND_V(!img.is_valid(), Ref<ImageTexture>()); ERR_FAIL_COND_V(!img.is_valid(), Ref<ImageTexture>());
@ -358,35 +358,35 @@ Ref<Texture2D> EditorMaterialPreviewPlugin::generate(const RES &p_from, const Si
EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() { EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() {
scenario = VS::get_singleton()->scenario_create(); scenario = RS::get_singleton()->scenario_create();
viewport = VS::get_singleton()->viewport_create(); viewport = RS::get_singleton()->viewport_create();
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_DISABLED); RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_DISABLED);
VS::get_singleton()->viewport_set_scenario(viewport, scenario); RS::get_singleton()->viewport_set_scenario(viewport, scenario);
VS::get_singleton()->viewport_set_size(viewport, 128, 128); RS::get_singleton()->viewport_set_size(viewport, 128, 128);
VS::get_singleton()->viewport_set_transparent_background(viewport, true); RS::get_singleton()->viewport_set_transparent_background(viewport, true);
VS::get_singleton()->viewport_set_active(viewport, true); RS::get_singleton()->viewport_set_active(viewport, true);
viewport_texture = VS::get_singleton()->viewport_get_texture(viewport); viewport_texture = RS::get_singleton()->viewport_get_texture(viewport);
camera = VS::get_singleton()->camera_create(); camera = RS::get_singleton()->camera_create();
VS::get_singleton()->viewport_attach_camera(viewport, camera); RS::get_singleton()->viewport_attach_camera(viewport, camera);
VS::get_singleton()->camera_set_transform(camera, Transform(Basis(), Vector3(0, 0, 3))); RS::get_singleton()->camera_set_transform(camera, Transform(Basis(), Vector3(0, 0, 3)));
VS::get_singleton()->camera_set_perspective(camera, 45, 0.1, 10); RS::get_singleton()->camera_set_perspective(camera, 45, 0.1, 10);
light = VS::get_singleton()->directional_light_create(); light = RS::get_singleton()->directional_light_create();
light_instance = VS::get_singleton()->instance_create2(light, scenario); light_instance = RS::get_singleton()->instance_create2(light, scenario);
VS::get_singleton()->instance_set_transform(light_instance, Transform().looking_at(Vector3(-1, -1, -1), Vector3(0, 1, 0))); RS::get_singleton()->instance_set_transform(light_instance, Transform().looking_at(Vector3(-1, -1, -1), Vector3(0, 1, 0)));
light2 = VS::get_singleton()->directional_light_create(); light2 = RS::get_singleton()->directional_light_create();
VS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7)); RS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7));
//VS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7)); //RS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7));
light_instance2 = VS::get_singleton()->instance_create2(light2, scenario); light_instance2 = RS::get_singleton()->instance_create2(light2, scenario);
VS::get_singleton()->instance_set_transform(light_instance2, Transform().looking_at(Vector3(0, 1, 0), Vector3(0, 0, 1))); RS::get_singleton()->instance_set_transform(light_instance2, Transform().looking_at(Vector3(0, 1, 0), Vector3(0, 0, 1)));
sphere = VS::get_singleton()->mesh_create(); sphere = RS::get_singleton()->mesh_create();
sphere_instance = VS::get_singleton()->instance_create2(sphere, scenario); sphere_instance = RS::get_singleton()->instance_create2(sphere, scenario);
int lats = 32; int lats = 32;
int lons = 32; int lons = 32;
@ -453,25 +453,25 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() {
} }
Array arr; Array arr;
arr.resize(VS::ARRAY_MAX); arr.resize(RS::ARRAY_MAX);
arr[VS::ARRAY_VERTEX] = vertices; arr[RS::ARRAY_VERTEX] = vertices;
arr[VS::ARRAY_NORMAL] = normals; arr[RS::ARRAY_NORMAL] = normals;
arr[VS::ARRAY_TANGENT] = tangents; arr[RS::ARRAY_TANGENT] = tangents;
arr[VS::ARRAY_TEX_UV] = uvs; arr[RS::ARRAY_TEX_UV] = uvs;
VS::get_singleton()->mesh_add_surface_from_arrays(sphere, VS::PRIMITIVE_TRIANGLES, arr); RS::get_singleton()->mesh_add_surface_from_arrays(sphere, RS::PRIMITIVE_TRIANGLES, arr);
} }
EditorMaterialPreviewPlugin::~EditorMaterialPreviewPlugin() { EditorMaterialPreviewPlugin::~EditorMaterialPreviewPlugin() {
VS::get_singleton()->free(sphere); RS::get_singleton()->free(sphere);
VS::get_singleton()->free(sphere_instance); RS::get_singleton()->free(sphere_instance);
VS::get_singleton()->free(viewport); RS::get_singleton()->free(viewport);
VS::get_singleton()->free(light); RS::get_singleton()->free(light);
VS::get_singleton()->free(light_instance); RS::get_singleton()->free(light_instance);
VS::get_singleton()->free(light2); RS::get_singleton()->free(light2);
VS::get_singleton()->free(light_instance2); RS::get_singleton()->free(light_instance2);
VS::get_singleton()->free(camera); RS::get_singleton()->free(camera);
VS::get_singleton()->free(scenario); RS::get_singleton()->free(scenario);
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -706,7 +706,7 @@ Ref<Texture2D> EditorMeshPreviewPlugin::generate(const RES &p_from, const Size2
Ref<Mesh> mesh = p_from; Ref<Mesh> mesh = p_from;
ERR_FAIL_COND_V(mesh.is_null(), Ref<Texture2D>()); ERR_FAIL_COND_V(mesh.is_null(), Ref<Texture2D>());
VS::get_singleton()->instance_set_base(mesh_instance, mesh->get_rid()); RS::get_singleton()->instance_set_base(mesh_instance, mesh->get_rid());
AABB aabb = mesh->get_aabb(); AABB aabb = mesh->get_aabb();
Vector3 ofs = aabb.position + aabb.size * 0.5; Vector3 ofs = aabb.position + aabb.size * 0.5;
@ -723,21 +723,21 @@ Ref<Texture2D> EditorMeshPreviewPlugin::generate(const RES &p_from, const Size2
xform.basis.scale(Vector3(m, m, m)); xform.basis.scale(Vector3(m, m, m));
xform.origin = -xform.basis.xform(ofs); //-ofs*m; xform.origin = -xform.basis.xform(ofs); //-ofs*m;
xform.origin.z -= rot_aabb.size.z * 2; xform.origin.z -= rot_aabb.size.z * 2;
VS::get_singleton()->instance_set_transform(mesh_instance, xform); RS::get_singleton()->instance_set_transform(mesh_instance, xform);
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_ONCE); //once used for capture RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ONCE); //once used for capture
preview_done = false; preview_done = false;
VS::get_singleton()->request_frame_drawn_callback(const_cast<EditorMeshPreviewPlugin *>(this), "_preview_done", Variant()); RS::get_singleton()->request_frame_drawn_callback(const_cast<EditorMeshPreviewPlugin *>(this), "_preview_done", Variant());
while (!preview_done) { while (!preview_done) {
OS::get_singleton()->delay_usec(10); OS::get_singleton()->delay_usec(10);
} }
Ref<Image> img = VS::get_singleton()->texture_2d_get(viewport_texture); Ref<Image> img = RS::get_singleton()->texture_2d_get(viewport_texture);
ERR_FAIL_COND_V(img.is_null(), Ref<ImageTexture>()); ERR_FAIL_COND_V(img.is_null(), Ref<ImageTexture>());
VS::get_singleton()->instance_set_base(mesh_instance, RID()); RS::get_singleton()->instance_set_base(mesh_instance, RID());
img->convert(Image::FORMAT_RGBA8); img->convert(Image::FORMAT_RGBA8);
@ -759,49 +759,49 @@ Ref<Texture2D> EditorMeshPreviewPlugin::generate(const RES &p_from, const Size2
EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() {
scenario = VS::get_singleton()->scenario_create(); scenario = RS::get_singleton()->scenario_create();
viewport = VS::get_singleton()->viewport_create(); viewport = RS::get_singleton()->viewport_create();
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_DISABLED); RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_DISABLED);
VS::get_singleton()->viewport_set_scenario(viewport, scenario); RS::get_singleton()->viewport_set_scenario(viewport, scenario);
VS::get_singleton()->viewport_set_size(viewport, 128, 128); RS::get_singleton()->viewport_set_size(viewport, 128, 128);
VS::get_singleton()->viewport_set_transparent_background(viewport, true); RS::get_singleton()->viewport_set_transparent_background(viewport, true);
VS::get_singleton()->viewport_set_active(viewport, true); RS::get_singleton()->viewport_set_active(viewport, true);
viewport_texture = VS::get_singleton()->viewport_get_texture(viewport); viewport_texture = RS::get_singleton()->viewport_get_texture(viewport);
camera = VS::get_singleton()->camera_create(); camera = RS::get_singleton()->camera_create();
VS::get_singleton()->viewport_attach_camera(viewport, camera); RS::get_singleton()->viewport_attach_camera(viewport, camera);
VS::get_singleton()->camera_set_transform(camera, Transform(Basis(), Vector3(0, 0, 3))); RS::get_singleton()->camera_set_transform(camera, Transform(Basis(), Vector3(0, 0, 3)));
//VS::get_singleton()->camera_set_perspective(camera,45,0.1,10); //RS::get_singleton()->camera_set_perspective(camera,45,0.1,10);
VS::get_singleton()->camera_set_orthogonal(camera, 1.0, 0.01, 1000.0); RS::get_singleton()->camera_set_orthogonal(camera, 1.0, 0.01, 1000.0);
light = VS::get_singleton()->directional_light_create(); light = RS::get_singleton()->directional_light_create();
light_instance = VS::get_singleton()->instance_create2(light, scenario); light_instance = RS::get_singleton()->instance_create2(light, scenario);
VS::get_singleton()->instance_set_transform(light_instance, Transform().looking_at(Vector3(-1, -1, -1), Vector3(0, 1, 0))); RS::get_singleton()->instance_set_transform(light_instance, Transform().looking_at(Vector3(-1, -1, -1), Vector3(0, 1, 0)));
light2 = VS::get_singleton()->directional_light_create(); light2 = RS::get_singleton()->directional_light_create();
VS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7)); RS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7));
//VS::get_singleton()->light_set_color(light2, VS::LIGHT_COLOR_SPECULAR, Color(0.0, 0.0, 0.0)); //RS::get_singleton()->light_set_color(light2, RS::LIGHT_COLOR_SPECULAR, Color(0.0, 0.0, 0.0));
light_instance2 = VS::get_singleton()->instance_create2(light2, scenario); light_instance2 = RS::get_singleton()->instance_create2(light2, scenario);
VS::get_singleton()->instance_set_transform(light_instance2, Transform().looking_at(Vector3(0, 1, 0), Vector3(0, 0, 1))); RS::get_singleton()->instance_set_transform(light_instance2, Transform().looking_at(Vector3(0, 1, 0), Vector3(0, 0, 1)));
//sphere = VS::get_singleton()->mesh_create(); //sphere = RS::get_singleton()->mesh_create();
mesh_instance = VS::get_singleton()->instance_create(); mesh_instance = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_scenario(mesh_instance, scenario); RS::get_singleton()->instance_set_scenario(mesh_instance, scenario);
} }
EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() { EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() {
//VS::get_singleton()->free(sphere); //RS::get_singleton()->free(sphere);
VS::get_singleton()->free(mesh_instance); RS::get_singleton()->free(mesh_instance);
VS::get_singleton()->free(viewport); RS::get_singleton()->free(viewport);
VS::get_singleton()->free(light); RS::get_singleton()->free(light);
VS::get_singleton()->free(light_instance); RS::get_singleton()->free(light_instance);
VS::get_singleton()->free(light2); RS::get_singleton()->free(light2);
VS::get_singleton()->free(light_instance2); RS::get_singleton()->free(light_instance2);
VS::get_singleton()->free(camera); RS::get_singleton()->free(camera);
VS::get_singleton()->free(scenario); RS::get_singleton()->free(scenario);
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -849,16 +849,16 @@ Ref<Texture2D> EditorFontPreviewPlugin::generate_from_path(const String &p_path,
font->draw(canvas_item, pos, sampled_text); font->draw(canvas_item, pos, sampled_text);
preview_done = false; preview_done = false;
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_ONCE); //once used for capture RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ONCE); //once used for capture
VS::get_singleton()->request_frame_drawn_callback(const_cast<EditorFontPreviewPlugin *>(this), "_preview_done", Variant()); RS::get_singleton()->request_frame_drawn_callback(const_cast<EditorFontPreviewPlugin *>(this), "_preview_done", Variant());
while (!preview_done) { while (!preview_done) {
OS::get_singleton()->delay_usec(10); OS::get_singleton()->delay_usec(10);
} }
VS::get_singleton()->canvas_item_clear(canvas_item); RS::get_singleton()->canvas_item_clear(canvas_item);
Ref<Image> img = VS::get_singleton()->texture_2d_get(viewport_texture); Ref<Image> img = RS::get_singleton()->texture_2d_get(viewport_texture);
ERR_FAIL_COND_V(img.is_null(), Ref<ImageTexture>()); ERR_FAIL_COND_V(img.is_null(), Ref<ImageTexture>());
img->convert(Image::FORMAT_RGBA8); img->convert(Image::FORMAT_RGBA8);
@ -891,22 +891,22 @@ Ref<Texture2D> EditorFontPreviewPlugin::generate(const RES &p_from, const Size2
EditorFontPreviewPlugin::EditorFontPreviewPlugin() { EditorFontPreviewPlugin::EditorFontPreviewPlugin() {
viewport = VS::get_singleton()->viewport_create(); viewport = RS::get_singleton()->viewport_create();
VS::get_singleton()->viewport_set_update_mode(viewport, VS::VIEWPORT_UPDATE_DISABLED); RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_DISABLED);
VS::get_singleton()->viewport_set_size(viewport, 128, 128); RS::get_singleton()->viewport_set_size(viewport, 128, 128);
VS::get_singleton()->viewport_set_active(viewport, true); RS::get_singleton()->viewport_set_active(viewport, true);
viewport_texture = VS::get_singleton()->viewport_get_texture(viewport); viewport_texture = RS::get_singleton()->viewport_get_texture(viewport);
canvas = VS::get_singleton()->canvas_create(); canvas = RS::get_singleton()->canvas_create();
canvas_item = VS::get_singleton()->canvas_item_create(); canvas_item = RS::get_singleton()->canvas_item_create();
VS::get_singleton()->viewport_attach_canvas(viewport, canvas); RS::get_singleton()->viewport_attach_canvas(viewport, canvas);
VS::get_singleton()->canvas_item_set_parent(canvas_item, canvas); RS::get_singleton()->canvas_item_set_parent(canvas_item, canvas);
} }
EditorFontPreviewPlugin::~EditorFontPreviewPlugin() { EditorFontPreviewPlugin::~EditorFontPreviewPlugin() {
VS::get_singleton()->free(canvas_item); RS::get_singleton()->free(canvas_item);
VS::get_singleton()->free(canvas); RS::get_singleton()->free(canvas);
VS::get_singleton()->free(viewport); RS::get_singleton()->free(viewport);
} }

View File

@ -256,14 +256,14 @@ Ref<Resource> StandardMaterial3DConversionPlugin::convert(const Ref<Resource> &p
Ref<Shader> shader; Ref<Shader> shader;
shader.instance(); shader.instance();
String code = VS::get_singleton()->shader_get_code(mat->get_shader_rid()); String code = RS::get_singleton()->shader_get_code(mat->get_shader_rid());
shader->set_code(code); shader->set_code(code);
smat->set_shader(shader); smat->set_shader(shader);
List<PropertyInfo> params; List<PropertyInfo> params;
VS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params); RS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params);
for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) { for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) {
@ -273,7 +273,7 @@ Ref<Resource> StandardMaterial3DConversionPlugin::convert(const Ref<Resource> &p
if (texture.is_valid()) { if (texture.is_valid()) {
smat->set_shader_param(E->get().name, texture); smat->set_shader_param(E->get().name, texture);
} else { } else {
Variant value = VS::get_singleton()->material_get_param(mat->get_rid(), E->get().name); Variant value = RS::get_singleton()->material_get_param(mat->get_rid(), E->get().name);
smat->set_shader_param(E->get().name, value); smat->set_shader_param(E->get().name, value);
} }
} }
@ -302,17 +302,17 @@ Ref<Resource> ParticlesMaterialConversionPlugin::convert(const Ref<Resource> &p_
Ref<Shader> shader; Ref<Shader> shader;
shader.instance(); shader.instance();
String code = VS::get_singleton()->shader_get_code(mat->get_shader_rid()); String code = RS::get_singleton()->shader_get_code(mat->get_shader_rid());
shader->set_code(code); shader->set_code(code);
smat->set_shader(shader); smat->set_shader(shader);
List<PropertyInfo> params; List<PropertyInfo> params;
VS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params); RS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params);
for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) { for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) {
Variant value = VS::get_singleton()->material_get_param(mat->get_rid(), E->get().name); Variant value = RS::get_singleton()->material_get_param(mat->get_rid(), E->get().name);
smat->set_shader_param(E->get().name, value); smat->set_shader_param(E->get().name, value);
} }
@ -340,17 +340,17 @@ Ref<Resource> CanvasItemMaterialConversionPlugin::convert(const Ref<Resource> &p
Ref<Shader> shader; Ref<Shader> shader;
shader.instance(); shader.instance();
String code = VS::get_singleton()->shader_get_code(mat->get_shader_rid()); String code = RS::get_singleton()->shader_get_code(mat->get_shader_rid());
shader->set_code(code); shader->set_code(code);
smat->set_shader(shader); smat->set_shader(shader);
List<PropertyInfo> params; List<PropertyInfo> params;
VS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params); RS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params);
for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) { for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) {
Variant value = VS::get_singleton()->material_get_param(mat->get_rid(), E->get().name); Variant value = RS::get_singleton()->material_get_param(mat->get_rid(), E->get().name);
smat->set_shader_param(E->get().name, value); smat->set_shader_param(E->get().name, value);
} }
@ -378,17 +378,17 @@ Ref<Resource> ProceduralSkyMaterialConversionPlugin::convert(const Ref<Resource>
Ref<Shader> shader; Ref<Shader> shader;
shader.instance(); shader.instance();
String code = VS::get_singleton()->shader_get_code(mat->get_shader_rid()); String code = RS::get_singleton()->shader_get_code(mat->get_shader_rid());
shader->set_code(code); shader->set_code(code);
smat->set_shader(shader); smat->set_shader(shader);
List<PropertyInfo> params; List<PropertyInfo> params;
VS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params); RS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params);
for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) { for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) {
Variant value = VS::get_singleton()->material_get_param(mat->get_rid(), E->get().name); Variant value = RS::get_singleton()->material_get_param(mat->get_rid(), E->get().name);
smat->set_shader_param(E->get().name, value); smat->set_shader_param(E->get().name, value);
} }
@ -416,17 +416,17 @@ Ref<Resource> PanoramaSkyMaterialConversionPlugin::convert(const Ref<Resource> &
Ref<Shader> shader; Ref<Shader> shader;
shader.instance(); shader.instance();
String code = VS::get_singleton()->shader_get_code(mat->get_shader_rid()); String code = RS::get_singleton()->shader_get_code(mat->get_shader_rid());
shader->set_code(code); shader->set_code(code);
smat->set_shader(shader); smat->set_shader(shader);
List<PropertyInfo> params; List<PropertyInfo> params;
VS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params); RS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params);
for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) { for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) {
Variant value = VS::get_singleton()->material_get_param(mat->get_rid(), E->get().name); Variant value = RS::get_singleton()->material_get_param(mat->get_rid(), E->get().name);
smat->set_shader_param(E->get().name, value); smat->set_shader_param(E->get().name, value);
} }
@ -454,17 +454,17 @@ Ref<Resource> PhysicalSkyMaterialConversionPlugin::convert(const Ref<Resource> &
Ref<Shader> shader; Ref<Shader> shader;
shader.instance(); shader.instance();
String code = VS::get_singleton()->shader_get_code(mat->get_shader_rid()); String code = RS::get_singleton()->shader_get_code(mat->get_shader_rid());
shader->set_code(code); shader->set_code(code);
smat->set_shader(shader); smat->set_shader(shader);
List<PropertyInfo> params; List<PropertyInfo> params;
VS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params); RS::get_singleton()->shader_get_param_list(mat->get_shader_rid(), &params);
for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) { for (List<PropertyInfo>::Element *E = params.front(); E; E = E->next()) {
Variant value = VS::get_singleton()->material_get_param(mat->get_rid(), E->get().name); Variant value = RS::get_singleton()->material_get_param(mat->get_rid(), E->get().name);
smat->set_shader_param(E->get().name, value); smat->set_shader_param(E->get().name, value);
} }

View File

@ -496,7 +496,7 @@ ObjectID Node3DEditorViewport::_select_ray(const Point2 &p_pos, bool p_append, b
Vector3 pos = _get_ray_pos(p_pos); Vector3 pos = _get_ray_pos(p_pos);
Vector2 shrinked_pos = p_pos / viewport_container->get_stretch_shrink(); Vector2 shrinked_pos = p_pos / viewport_container->get_stretch_shrink();
Vector<ObjectID> instances = VisualServer::get_singleton()->instances_cull_ray(pos, ray, get_tree()->get_root()->get_world()->get_scenario()); Vector<ObjectID> instances = RenderingServer::get_singleton()->instances_cull_ray(pos, ray, get_tree()->get_root()->get_world()->get_scenario());
Set<Ref<EditorNode3DGizmo>> found_gizmos; Set<Ref<EditorNode3DGizmo>> found_gizmos;
Node *edited_scene = get_tree()->get_edited_scene_root(); Node *edited_scene = get_tree()->get_edited_scene_root();
@ -563,7 +563,7 @@ void Node3DEditorViewport::_find_items_at_pos(const Point2 &p_pos, bool &r_inclu
Vector3 ray = _get_ray(p_pos); Vector3 ray = _get_ray(p_pos);
Vector3 pos = _get_ray_pos(p_pos); Vector3 pos = _get_ray_pos(p_pos);
Vector<ObjectID> instances = VisualServer::get_singleton()->instances_cull_ray(pos, ray, get_tree()->get_root()->get_world()->get_scenario()); Vector<ObjectID> instances = RenderingServer::get_singleton()->instances_cull_ray(pos, ray, get_tree()->get_root()->get_world()->get_scenario());
Set<Ref<EditorNode3DGizmo>> found_gizmos; Set<Ref<EditorNode3DGizmo>> found_gizmos;
r_includes_current = false; r_includes_current = false;
@ -686,7 +686,7 @@ void Node3DEditorViewport::_select_region() {
frustum.push_back(far); frustum.push_back(far);
} }
Vector<ObjectID> instances = VisualServer::get_singleton()->instances_cull_convex(frustum, get_tree()->get_root()->get_world()->get_scenario()); Vector<ObjectID> instances = RenderingServer::get_singleton()->instances_cull_convex(frustum, get_tree()->get_root()->get_world()->get_scenario());
Vector<Node *> selected; Vector<Node *> selected;
Node *edited_scene = get_tree()->get_edited_scene_root(); Node *edited_scene = get_tree()->get_edited_scene_root();
@ -2395,7 +2395,7 @@ void Node3DEditorViewport::_notification(int p_what) {
} }
previewing = cam; previewing = cam;
previewing->connect("tree_exited", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene)); previewing->connect("tree_exited", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene));
VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), cam->get_camera()); RS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), cam->get_camera());
surface->update(); surface->update();
} }
} }
@ -2437,7 +2437,7 @@ void Node3DEditorViewport::_notification(int p_what) {
aabb_s.scale(se->aabb.size); aabb_s.scale(se->aabb.size);
t.basis = t.basis * aabb_s; t.basis = t.basis * aabb_s;
VisualServer::get_singleton()->instance_set_transform(se->sbox_instance, t); RenderingServer::get_singleton()->instance_set_transform(se->sbox_instance, t);
} }
if (changed || (spatial_editor->is_gizmo_visible() && !exist)) { if (changed || (spatial_editor->is_gizmo_visible() && !exist)) {
@ -2643,7 +2643,7 @@ void Node3DEditorViewport::_draw() {
if (_edit.mode == TRANSFORM_ROTATE) { if (_edit.mode == TRANSFORM_ROTATE) {
Point2 center = _point_to_screen(_edit.center); Point2 center = _point_to_screen(_edit.center);
VisualServer::get_singleton()->canvas_item_add_line( RenderingServer::get_singleton()->canvas_item_add_line(
ci, ci,
_edit.mouse_pos, _edit.mouse_pos,
center, center,
@ -3082,51 +3082,51 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) {
uint32_t layer = 1 << (GIZMO_BASE_LAYER + p_idx); uint32_t layer = 1 << (GIZMO_BASE_LAYER + p_idx);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
move_gizmo_instance[i] = VS::get_singleton()->instance_create(); move_gizmo_instance[i] = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(move_gizmo_instance[i], spatial_editor->get_move_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_base(move_gizmo_instance[i], spatial_editor->get_move_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(move_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(move_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(move_gizmo_instance[i], false); RS::get_singleton()->instance_set_visible(move_gizmo_instance[i], false);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i], layer); RS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i], layer);
move_plane_gizmo_instance[i] = VS::get_singleton()->instance_create(); move_plane_gizmo_instance[i] = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(move_plane_gizmo_instance[i], spatial_editor->get_move_plane_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_base(move_plane_gizmo_instance[i], spatial_editor->get_move_plane_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(move_plane_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(move_plane_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false); RS::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(move_plane_gizmo_instance[i], layer); RS::get_singleton()->instance_set_layer_mask(move_plane_gizmo_instance[i], layer);
rotate_gizmo_instance[i] = VS::get_singleton()->instance_create(); rotate_gizmo_instance[i] = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(rotate_gizmo_instance[i], spatial_editor->get_rotate_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_base(rotate_gizmo_instance[i], spatial_editor->get_rotate_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false); RS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i], layer); RS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i], layer);
scale_gizmo_instance[i] = VS::get_singleton()->instance_create(); scale_gizmo_instance[i] = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(scale_gizmo_instance[i], spatial_editor->get_scale_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_base(scale_gizmo_instance[i], spatial_editor->get_scale_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(scale_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(scale_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false); RS::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(scale_gizmo_instance[i], layer); RS::get_singleton()->instance_set_layer_mask(scale_gizmo_instance[i], layer);
scale_plane_gizmo_instance[i] = VS::get_singleton()->instance_create(); scale_plane_gizmo_instance[i] = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(scale_plane_gizmo_instance[i], spatial_editor->get_scale_plane_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_base(scale_plane_gizmo_instance[i], spatial_editor->get_scale_plane_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(scale_plane_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(scale_plane_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false); RS::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer); RS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer);
} }
} }
void Node3DEditorViewport::_finish_gizmo_instances() { void Node3DEditorViewport::_finish_gizmo_instances() {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VS::get_singleton()->free(move_gizmo_instance[i]); RS::get_singleton()->free(move_gizmo_instance[i]);
VS::get_singleton()->free(move_plane_gizmo_instance[i]); RS::get_singleton()->free(move_plane_gizmo_instance[i]);
VS::get_singleton()->free(rotate_gizmo_instance[i]); RS::get_singleton()->free(rotate_gizmo_instance[i]);
VS::get_singleton()->free(scale_gizmo_instance[i]); RS::get_singleton()->free(scale_gizmo_instance[i]);
VS::get_singleton()->free(scale_plane_gizmo_instance[i]); RS::get_singleton()->free(scale_plane_gizmo_instance[i]);
} }
} }
void Node3DEditorViewport::_toggle_camera_preview(bool p_activate) { void Node3DEditorViewport::_toggle_camera_preview(bool p_activate) {
@ -3138,7 +3138,7 @@ void Node3DEditorViewport::_toggle_camera_preview(bool p_activate) {
previewing->disconnect("tree_exiting", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene)); previewing->disconnect("tree_exiting", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene));
previewing = NULL; previewing = NULL;
VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), camera->get_camera()); //restore RS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), camera->get_camera()); //restore
if (!preview) if (!preview)
preview_camera->hide(); preview_camera->hide();
view_menu->set_disabled(false); view_menu->set_disabled(false);
@ -3148,7 +3148,7 @@ void Node3DEditorViewport::_toggle_camera_preview(bool p_activate) {
previewing = preview; previewing = preview;
previewing->connect("tree_exiting", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene)); previewing->connect("tree_exiting", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene));
VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), preview->get_camera()); //replace RS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), preview->get_camera()); //replace
view_menu->set_disabled(true); view_menu->set_disabled(true);
surface->update(); surface->update();
} }
@ -3161,7 +3161,7 @@ void Node3DEditorViewport::_toggle_cinema_preview(bool p_activate) {
previewing->disconnect("tree_exited", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene)); previewing->disconnect("tree_exited", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene));
previewing = NULL; previewing = NULL;
VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), camera->get_camera()); //restore RS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), camera->get_camera()); //restore
preview_camera->set_pressed(false); preview_camera->set_pressed(false);
if (!preview) { if (!preview) {
preview_camera->hide(); preview_camera->hide();
@ -3212,11 +3212,11 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
if (xform.origin.distance_squared_to(camera_xform.origin) < 0.01) { if (xform.origin.distance_squared_to(camera_xform.origin) < 0.01) {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], false); RenderingServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], false);
VisualServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false); RenderingServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false);
VisualServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false); RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false);
VisualServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false); RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false);
VisualServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false); RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false);
} }
return; return;
} }
@ -3244,16 +3244,16 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
xform.basis.scale(scale); xform.basis.scale(scale);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform); RenderingServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform);
VisualServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE)); RenderingServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE));
VisualServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], xform); RenderingServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], xform);
VisualServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE)); RenderingServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE));
VisualServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], xform); RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], xform);
VisualServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE)); RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE));
VisualServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], xform); RenderingServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], xform);
VisualServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE)); RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
VisualServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], xform); RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], xform);
VisualServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE)); RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
} }
} }
@ -3363,7 +3363,7 @@ void Node3DEditorViewport::set_state(const Dictionary &p_state) {
if (Object::cast_to<Camera3D>(pv)) { if (Object::cast_to<Camera3D>(pv)) {
previewing = Object::cast_to<Camera3D>(pv); previewing = Object::cast_to<Camera3D>(pv);
previewing->connect("tree_exiting", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene)); previewing->connect("tree_exiting", callable_mp(this, &Node3DEditorViewport::_preview_exited_scene));
VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), previewing->get_camera()); //replace RS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), previewing->get_camera()); //replace
view_menu->set_disabled(true); view_menu->set_disabled(true);
surface->update(); surface->update();
preview_camera->set_pressed(true); preview_camera->set_pressed(true);
@ -3478,7 +3478,7 @@ Vector3 Node3DEditorViewport::_get_instance_position(const Point2 &p_pos) const
Vector3 world_ray = _get_ray(p_pos); Vector3 world_ray = _get_ray(p_pos);
Vector3 world_pos = _get_ray_pos(p_pos); Vector3 world_pos = _get_ray_pos(p_pos);
Vector<ObjectID> instances = VisualServer::get_singleton()->instances_cull_ray(world_pos, world_ray, get_tree()->get_root()->get_world()->get_scenario()); Vector<ObjectID> instances = RenderingServer::get_singleton()->instances_cull_ray(world_pos, world_ray, get_tree()->get_root()->get_world()->get_scenario());
Set<Ref<EditorNode3DGizmo>> found_gizmos; Set<Ref<EditorNode3DGizmo>> found_gizmos;
float closest_dist = MAX_DISTANCE; float closest_dist = MAX_DISTANCE;
@ -4398,7 +4398,7 @@ Node3DEditor *Node3DEditor::singleton = NULL;
Node3DEditorSelectedItem::~Node3DEditorSelectedItem() { Node3DEditorSelectedItem::~Node3DEditorSelectedItem() {
if (sbox_instance.is_valid()) if (sbox_instance.is_valid())
VisualServer::get_singleton()->free(sbox_instance); RenderingServer::get_singleton()->free(sbox_instance);
} }
void Node3DEditor::select_gizmo_highlight_axis(int p_axis) { void Node3DEditor::select_gizmo_highlight_axis(int p_axis) {
@ -4484,8 +4484,8 @@ Object *Node3DEditor::_get_editor_data(Object *p_what) {
Node3DEditorSelectedItem *si = memnew(Node3DEditorSelectedItem); Node3DEditorSelectedItem *si = memnew(Node3DEditorSelectedItem);
si->sp = sp; si->sp = sp;
si->sbox_instance = VisualServer::get_singleton()->instance_create2(selection_box->get_rid(), sp->get_world()->get_scenario()); si->sbox_instance = RenderingServer::get_singleton()->instance_create2(selection_box->get_rid(), sp->get_world()->get_scenario());
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(si->sbox_instance, VS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(si->sbox_instance, RS::SHADOW_CASTING_SETTING_OFF);
return si; return si;
} }
@ -4649,7 +4649,7 @@ void Node3DEditor::set_state(const Dictionary &p_state) {
if (use != view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN))) { if (use != view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN))) {
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), use); view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), use);
VisualServer::get_singleton()->instance_set_visible(origin_instance, use); RenderingServer::get_singleton()->instance_set_visible(origin_instance, use);
} }
} }
@ -4954,7 +4954,7 @@ void Node3DEditor::_menu_item_pressed(int p_option) {
bool is_checked = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(p_option)); bool is_checked = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(p_option));
origin_enabled = !is_checked; origin_enabled = !is_checked;
VisualServer::get_singleton()->instance_set_visible(origin_instance, origin_enabled); RenderingServer::get_singleton()->instance_set_visible(origin_instance, origin_enabled);
// Update the grid since its appearance depends on whether the origin is enabled // Update the grid since its appearance depends on whether the origin is enabled
_finish_grid(); _finish_grid();
_init_grid(); _init_grid();
@ -4969,7 +4969,7 @@ void Node3DEditor::_menu_item_pressed(int p_option) {
for (int i = 0; i < 3; ++i) { for (int i = 0; i < 3; ++i) {
if (grid_enable[i]) { if (grid_enable[i]) {
VisualServer::get_singleton()->instance_set_visible(grid_instance[i], grid_enabled); RenderingServer::get_singleton()->instance_set_visible(grid_instance[i], grid_enabled);
grid_visible[i] = grid_enabled; grid_visible[i] = grid_enabled;
} }
} }
@ -5129,19 +5129,19 @@ void Node3DEditor::_init_indicators() {
_init_grid(); _init_grid();
origin = VisualServer::get_singleton()->mesh_create(); origin = RenderingServer::get_singleton()->mesh_create();
Array d; Array d;
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
d[VisualServer::ARRAY_VERTEX] = origin_points; d[RenderingServer::ARRAY_VERTEX] = origin_points;
d[VisualServer::ARRAY_COLOR] = origin_colors; d[RenderingServer::ARRAY_COLOR] = origin_colors;
VisualServer::get_singleton()->mesh_add_surface_from_arrays(origin, VisualServer::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(origin, RenderingServer::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(origin, 0, indicator_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(origin, 0, indicator_mat->get_rid());
origin_instance = VisualServer::get_singleton()->instance_create2(origin, get_tree()->get_root()->get_world()->get_scenario()); origin_instance = RenderingServer::get_singleton()->instance_create2(origin, get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_layer_mask(origin_instance, 1 << Node3DEditorViewport::GIZMO_GRID_LAYER); RS::get_singleton()->instance_set_layer_mask(origin_instance, 1 << Node3DEditorViewport::GIZMO_GRID_LAYER);
VisualServer::get_singleton()->instance_geometry_set_cast_shadows_setting(origin_instance, VS::SHADOW_CASTING_SETTING_OFF); RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(origin_instance, RS::SHADOW_CASTING_SETTING_OFF);
} }
{ {
@ -5506,33 +5506,33 @@ void Node3DEditor::_init_grid() {
grid_colors[i].push_back(line_color); grid_colors[i].push_back(line_color);
} }
grid[i] = VisualServer::get_singleton()->mesh_create(); grid[i] = RenderingServer::get_singleton()->mesh_create();
Array d; Array d;
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
d[VisualServer::ARRAY_VERTEX] = grid_points[i]; d[RenderingServer::ARRAY_VERTEX] = grid_points[i];
d[VisualServer::ARRAY_COLOR] = grid_colors[i]; d[RenderingServer::ARRAY_COLOR] = grid_colors[i];
VisualServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], VisualServer::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], RenderingServer::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid());
grid_instance[i] = VisualServer::get_singleton()->instance_create2(grid[i], get_tree()->get_root()->get_world()->get_scenario()); grid_instance[i] = RenderingServer::get_singleton()->instance_create2(grid[i], get_tree()->get_root()->get_world()->get_scenario());
VisualServer::get_singleton()->instance_set_visible(grid_instance[i], grid_visible[i]); RenderingServer::get_singleton()->instance_set_visible(grid_instance[i], grid_visible[i]);
VisualServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[i], VS::SHADOW_CASTING_SETTING_OFF); RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(grid_instance[i], 1 << Node3DEditorViewport::GIZMO_GRID_LAYER); RS::get_singleton()->instance_set_layer_mask(grid_instance[i], 1 << Node3DEditorViewport::GIZMO_GRID_LAYER);
} }
} }
void Node3DEditor::_finish_indicators() { void Node3DEditor::_finish_indicators() {
VisualServer::get_singleton()->free(origin_instance); RenderingServer::get_singleton()->free(origin_instance);
VisualServer::get_singleton()->free(origin); RenderingServer::get_singleton()->free(origin);
_finish_grid(); _finish_grid();
} }
void Node3DEditor::_finish_grid() { void Node3DEditor::_finish_grid() {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->free(grid_instance[i]); RenderingServer::get_singleton()->free(grid_instance[i]);
VisualServer::get_singleton()->free(grid[i]); RenderingServer::get_singleton()->free(grid[i]);
} }
} }
@ -5658,8 +5658,8 @@ void Node3DEditor::snap_selected_nodes_to_floor() {
} }
} }
PhysicsDirectSpaceState *ss = get_tree()->get_root()->get_world()->get_direct_space_state(); PhysicsDirectSpaceState3D *ss = get_tree()->get_root()->get_world()->get_direct_space_state();
PhysicsDirectSpaceState::RayResult result; PhysicsDirectSpaceState3D::RayResult result;
Array keys = snap_data.keys(); Array keys = snap_data.keys();
@ -5952,11 +5952,11 @@ void Node3DEditor::clear() {
viewports[i]->reset(); viewports[i]->reset();
} }
VisualServer::get_singleton()->instance_set_visible(origin_instance, true); RenderingServer::get_singleton()->instance_set_visible(origin_instance, true);
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), true); view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), true);
for (int i = 0; i < 3; ++i) { for (int i = 0; i < 3; ++i) {
if (grid_enable[i]) { if (grid_enable[i]) {
VisualServer::get_singleton()->instance_set_visible(grid_instance[i], true); RenderingServer::get_singleton()->instance_set_visible(grid_instance[i], true);
grid_visible[i] = true; grid_visible[i] = true;
} }
} }
@ -6313,7 +6313,7 @@ Node3DEditor::Node3DEditor(EditorNode *p_editor) {
xform_dialog->connect("confirmed", callable_mp(this, &Node3DEditor::_xform_dialog_action)); xform_dialog->connect("confirmed", callable_mp(this, &Node3DEditor::_xform_dialog_action));
scenario_debug = VisualServer::SCENARIO_DEBUG_DISABLED; scenario_debug = RenderingServer::SCENARIO_DEBUG_DISABLED;
selected = NULL; selected = NULL;

View File

@ -578,7 +578,7 @@ private:
ToolMode tool_mode; ToolMode tool_mode;
bool orthogonal; bool orthogonal;
VisualServer::ScenarioDebugMode scenario_debug; RenderingServer::ScenarioDebugMode scenario_debug;
RID origin; RID origin;
RID origin_instance; RID origin_instance;

View File

@ -990,9 +990,9 @@ void Polygon2DEditor::_uv_draw() {
mtx.elements[2] = -uv_draw_ofs; mtx.elements[2] = -uv_draw_ofs;
mtx.scale_basis(Vector2(uv_draw_zoom, uv_draw_zoom)); mtx.scale_basis(Vector2(uv_draw_zoom, uv_draw_zoom));
VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(), mtx); RS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(), mtx);
uv_edit_draw->draw_texture(base_tex, Point2()); uv_edit_draw->draw_texture(base_tex, Point2());
VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(), Transform2D()); RS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(), Transform2D());
if (snap_show_grid) { if (snap_show_grid) {
Color grid_color = Color(1.0, 1.0, 1.0, 0.15); Color grid_color = Color(1.0, 1.0, 1.0, 0.15);

View File

@ -39,7 +39,7 @@
#include "editor/editor_settings.h" #include "editor/editor_settings.h"
#include "editor/property_editor.h" #include "editor/property_editor.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/visual/shader_types.h" #include "servers/rendering/shader_types.h"
/*** SHADER SCRIPT EDITOR ****/ /*** SHADER SCRIPT EDITOR ****/
@ -150,16 +150,16 @@ void ShaderTextEditor::_load_theme_settings() {
if (shader.is_valid()) { if (shader.is_valid()) {
for (const Map<StringName, ShaderLanguage::FunctionInfo>::Element *E = ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())).front(); E; E = E->next()) { for (const Map<StringName, ShaderLanguage::FunctionInfo>::Element *E = ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader->get_mode())).front(); E; E = E->next()) {
for (const Map<StringName, ShaderLanguage::BuiltInInfo>::Element *F = E->get().built_ins.front(); F; F = F->next()) { for (const Map<StringName, ShaderLanguage::BuiltInInfo>::Element *F = E->get().built_ins.front(); F; F = F->next()) {
keywords.push_back(F->key()); keywords.push_back(F->key());
} }
} }
for (int i = 0; i < ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())).size(); i++) { for (int i = 0; i < ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())).size(); i++) {
keywords.push_back(ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode()))[i]); keywords.push_back(ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode()))[i]);
} }
} }
@ -200,7 +200,7 @@ void ShaderTextEditor::_code_complete_script(const String &p_code, List<ScriptCo
ShaderLanguage sl; ShaderLanguage sl;
String calltip; String calltip;
sl.complete(p_code, ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_types(), r_options, calltip); sl.complete(p_code, ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_types(), r_options, calltip);
get_text_edit()->set_code_hint(calltip); get_text_edit()->set_code_hint(calltip);
} }
@ -215,7 +215,7 @@ void ShaderTextEditor::_validate_script() {
ShaderLanguage sl; ShaderLanguage sl;
Error err = sl.compile(code, ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_types()); Error err = sl.compile(code, ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_types());
if (err != OK) { if (err != OK) {
String error_text = "error(" + itos(sl.get_error_line()) + "): " + sl.get_error_text(); String error_text = "error(" + itos(sl.get_error_line()) + "): " + sl.get_error_text();

View File

@ -39,7 +39,7 @@
#include "scene/gui/text_edit.h" #include "scene/gui/text_edit.h"
#include "scene/main/timer.h" #include "scene/main/timer.h"
#include "scene/resources/shader.h" #include "scene/resources/shader.h"
#include "servers/visual/shader_language.h" #include "servers/rendering/shader_language.h"
class ShaderTextEditor : public CodeTextEditor { class ShaderTextEditor : public CodeTextEditor {

View File

@ -68,9 +68,9 @@ void TextureRegionEditor::_region_draw() {
mtx.elements[2] = -draw_ofs * draw_zoom; mtx.elements[2] = -draw_ofs * draw_zoom;
mtx.scale_basis(Vector2(draw_zoom, draw_zoom)); mtx.scale_basis(Vector2(draw_zoom, draw_zoom));
VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(), mtx); RS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(), mtx);
edit_draw->draw_texture(base_tex, Point2()); edit_draw->draw_texture(base_tex, Point2());
VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(), Transform2D()); RS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(), Transform2D());
if (snap_mode == SNAP_GRID) { if (snap_mode == SNAP_GRID) {
Color grid_color = Color(1.0, 1.0, 1.0, 0.15); Color grid_color = Color(1.0, 1.0, 1.0, 0.15);

View File

@ -528,8 +528,8 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
toolbar->add_child(spin_priority); toolbar->add_child(spin_priority);
spin_z_index = memnew(SpinBox); spin_z_index = memnew(SpinBox);
spin_z_index->set_min(VS::CANVAS_ITEM_Z_MIN); spin_z_index->set_min(RS::CANVAS_ITEM_Z_MIN);
spin_z_index->set_max(VS::CANVAS_ITEM_Z_MAX); spin_z_index->set_max(RS::CANVAS_ITEM_Z_MAX);
spin_z_index->set_step(1); spin_z_index->set_step(1);
spin_z_index->set_custom_minimum_size(Size2(100, 0)); spin_z_index->set_custom_minimum_size(Size2(100, 0));
spin_z_index->connect("value_changed", callable_mp(this, &TileSetEditor::_on_z_index_changed)); spin_z_index->connect("value_changed", callable_mp(this, &TileSetEditor::_on_z_index_changed));
@ -3485,7 +3485,7 @@ void TilesetEditorContext::_get_property_list(List<PropertyInfo> *p_list) const
p_list->push_back(PropertyInfo(Variant::VECTOR2, "tile_navigation_offset")); p_list->push_back(PropertyInfo(Variant::VECTOR2, "tile_navigation_offset"));
p_list->push_back(PropertyInfo(Variant::VECTOR2, "tile_shape_offset", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR)); p_list->push_back(PropertyInfo(Variant::VECTOR2, "tile_shape_offset", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
p_list->push_back(PropertyInfo(Variant::VECTOR2, "tile_shape_transform", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR)); p_list->push_back(PropertyInfo(Variant::VECTOR2, "tile_shape_transform", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
p_list->push_back(PropertyInfo(Variant::INT, "tile_z_index", PROPERTY_HINT_RANGE, itos(VS::CANVAS_ITEM_Z_MIN) + "," + itos(VS::CANVAS_ITEM_Z_MAX) + ",1")); p_list->push_back(PropertyInfo(Variant::INT, "tile_z_index", PROPERTY_HINT_RANGE, itos(RS::CANVAS_ITEM_Z_MIN) + "," + itos(RS::CANVAS_ITEM_Z_MAX) + ",1"));
} }
if (tileset_editor->edit_mode == TileSetEditor::EDITMODE_COLLISION && tileset_editor->edited_collision_shape.is_valid()) { if (tileset_editor->edit_mode == TileSetEditor::EDITMODE_COLLISION && tileset_editor->edited_collision_shape.is_valid()) {
p_list->push_back(PropertyInfo(Variant::OBJECT, "selected_collision", PROPERTY_HINT_RESOURCE_TYPE, tileset_editor->edited_collision_shape->get_class())); p_list->push_back(PropertyInfo(Variant::OBJECT, "selected_collision", PROPERTY_HINT_RESOURCE_TYPE, tileset_editor->edited_collision_shape->get_class()));

View File

@ -45,7 +45,7 @@
#include "scene/main/window.h" #include "scene/main/window.h"
#include "scene/resources/visual_shader_nodes.h" #include "scene/resources/visual_shader_nodes.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/visual/shader_types.h" #include "servers/rendering/shader_types.h"
Control *VisualShaderNodePlugin::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) { Control *VisualShaderNodePlugin::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) {
@ -2263,7 +2263,7 @@ void VisualShaderEditor::_update_preview() {
ShaderLanguage sl; ShaderLanguage sl;
Error err = sl.compile(code, ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(visual_shader->get_mode())), ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(visual_shader->get_mode())), ShaderTypes::get_singleton()->get_types()); Error err = sl.compile(code, ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(visual_shader->get_mode())), ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(visual_shader->get_mode())), ShaderTypes::get_singleton()->get_types());
for (int i = 0; i < preview_text->get_line_count(); i++) { for (int i = 0; i < preview_text->get_line_count(); i++) {
preview_text->set_line_as_marked(i, false); preview_text->set_line_as_marked(i, false);

View File

@ -1500,7 +1500,7 @@ void CustomPropertyEditor::_draw_easing() {
iflp = 1.0 - iflp; iflp = 1.0 - iflp;
} }
VisualServer::get_singleton()->canvas_item_add_line(ci, Point2(iflp * s.width, prev * s.height), Point2(ifl * s.width, h * s.height), color); RenderingServer::get_singleton()->canvas_item_add_line(ci, Point2(iflp * s.width, prev * s.height), Point2(ifl * s.width, h * s.height), color);
prev = h; prev = h;
} }

View File

@ -47,7 +47,7 @@
#include "scene/main/window.h" #include "scene/main/window.h"
#include "scene/resources/packed_scene.h" #include "scene/resources/packed_scene.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
void SceneTreeDock::_nodes_drag_begin() { void SceneTreeDock::_nodes_drag_begin() {

View File

@ -602,7 +602,7 @@ def build_rd_header(filename):
out_file_class = out_file_base.replace(".glsl.gen.h", "").title().replace("_", "").replace(".", "") + "ShaderRD" out_file_class = out_file_base.replace(".glsl.gen.h", "").title().replace("_", "").replace(".", "") + "ShaderRD"
fd.write("\n") fd.write("\n")
fd.write("#include \"servers/visual/rasterizer_rd/shader_rd.h\"\n\n") fd.write("#include \"servers/rendering/rasterizer_rd/shader_rd.h\"\n\n")
fd.write("class " + out_file_class + " : public ShaderRD {\n\n") fd.write("class " + out_file_class + " : public ShaderRD {\n\n")
fd.write("public:\n\n") fd.write("public:\n\n")

View File

@ -65,13 +65,13 @@
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/camera_server.h" #include "servers/camera_server.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/navigation_2d_server.h" #include "servers/navigation_server_2d.h"
#include "servers/navigation_server.h" #include "servers/navigation_server_3d.h"
#include "servers/physics_2d_server.h" #include "servers/physics_server_2d.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include "servers/register_server_types.h" #include "servers/register_server_types.h"
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#include "servers/visual/visual_server_wrap_mt.h" #include "servers/rendering/rendering_server_wrap_mt.h"
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
#include "editor/doc_data.h" #include "editor/doc_data.h"
@ -103,13 +103,13 @@ static MessageQueue *message_queue = NULL;
// Initialized in setup2() // Initialized in setup2()
static AudioServer *audio_server = NULL; static AudioServer *audio_server = NULL;
static DisplayServer *display_server = NULL; static DisplayServer *display_server = NULL;
static VisualServer *visual_server = NULL; static RenderingServer *rendering_server = NULL;
static CameraServer *camera_server = NULL; static CameraServer *camera_server = NULL;
static ARVRServer *arvr_server = NULL; static ARVRServer *arvr_server = NULL;
static PhysicsServer *physics_server = NULL; static PhysicsServer3D *physics_server = NULL;
static Physics2DServer *physics_2d_server = NULL; static PhysicsServer2D *physics_2d_server = NULL;
static NavigationServer *navigation_server = NULL; static NavigationServer3D *navigation_server = NULL;
static Navigation2DServer *navigation_2d_server = NULL; static NavigationServer2D *navigation_2d_server = NULL;
// We error out if setup2() doesn't turn this true // We error out if setup2() doesn't turn this true
static bool _start_success = false; static bool _start_success = false;
@ -180,23 +180,23 @@ static String get_full_version_string() {
return String(VERSION_FULL_BUILD) + hash; return String(VERSION_FULL_BUILD) + hash;
} }
// FIXME: Could maybe be moved to PhysicsServerManager and Physics2DServerManager directly // FIXME: Could maybe be moved to PhysicsServer3DManager and PhysicsServer2DManager directly
// to have less code in main.cpp. // to have less code in main.cpp.
void initialize_physics() { void initialize_physics() {
/// 3D Physics Server /// 3D Physics Server
physics_server = PhysicsServerManager::new_server(ProjectSettings::get_singleton()->get(PhysicsServerManager::setting_property_name)); physics_server = PhysicsServer3DManager::new_server(ProjectSettings::get_singleton()->get(PhysicsServer3DManager::setting_property_name));
if (!physics_server) { if (!physics_server) {
// Physics server not found, Use the default physics // Physics server not found, Use the default physics
physics_server = PhysicsServerManager::new_default_server(); physics_server = PhysicsServer3DManager::new_default_server();
} }
ERR_FAIL_COND(!physics_server); ERR_FAIL_COND(!physics_server);
physics_server->init(); physics_server->init();
/// 2D Physics server /// 2D Physics server
physics_2d_server = Physics2DServerManager::new_server(ProjectSettings::get_singleton()->get(Physics2DServerManager::setting_property_name)); physics_2d_server = PhysicsServer2DManager::new_server(ProjectSettings::get_singleton()->get(PhysicsServer2DManager::setting_property_name));
if (!physics_2d_server) { if (!physics_2d_server) {
// Physics server not found, Use the default physics // Physics server not found, Use the default physics
physics_2d_server = Physics2DServerManager::new_default_server(); physics_2d_server = PhysicsServer2DManager::new_default_server();
} }
ERR_FAIL_COND(!physics_2d_server); ERR_FAIL_COND(!physics_2d_server);
physics_2d_server->init(); physics_2d_server->init();
@ -213,8 +213,8 @@ void finalize_physics() {
void finalize_display() { void finalize_display() {
visual_server->finish(); rendering_server->finish();
memdelete(visual_server); memdelete(rendering_server);
memdelete(display_server); memdelete(display_server);
} }
@ -222,8 +222,8 @@ void finalize_display() {
void initialize_navigation_server() { void initialize_navigation_server() {
ERR_FAIL_COND(navigation_server != NULL); ERR_FAIL_COND(navigation_server != NULL);
navigation_server = NavigationServerManager::new_default_server(); navigation_server = NavigationServer3DManager::new_default_server();
navigation_2d_server = memnew(Navigation2DServer); navigation_2d_server = memnew(NavigationServer2D);
} }
void finalize_navigation_server() { void finalize_navigation_server() {
@ -1273,12 +1273,12 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
/* Initialize Visual Server */ /* Initialize Visual Server */
visual_server = memnew(VisualServerRaster); rendering_server = memnew(RenderingServerRaster);
if (OS::get_singleton()->get_render_thread_mode() != OS::RENDER_THREAD_UNSAFE) { if (OS::get_singleton()->get_render_thread_mode() != OS::RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, OS::get_singleton()->get_render_thread_mode() == OS::RENDER_SEPARATE_THREAD)); rendering_server = memnew(RenderingServerWrapMT(rendering_server, OS::get_singleton()->get_render_thread_mode() == OS::RENDER_SEPARATE_THREAD));
} }
visual_server->init(); rendering_server->init();
OS::get_singleton()->initialize_joypads(); OS::get_singleton()->initialize_joypads();
@ -1333,7 +1333,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
MAIN_PRINT("Main: Load Remaps"); MAIN_PRINT("Main: Load Remaps");
Color clear = GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3)); Color clear = GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3));
VisualServer::get_singleton()->set_default_clear_color(clear); RenderingServer::get_singleton()->set_default_clear_color(clear);
if (show_logo) { //boot logo! if (show_logo) { //boot logo!
String boot_logo_path = GLOBAL_DEF("application/boot_splash/image", String()); String boot_logo_path = GLOBAL_DEF("application/boot_splash/image", String());
@ -1355,7 +1355,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
Color boot_bg_color = GLOBAL_DEF("application/boot_splash/bg_color", boot_splash_bg_color); Color boot_bg_color = GLOBAL_DEF("application/boot_splash/bg_color", boot_splash_bg_color);
if (boot_logo.is_valid()) { if (boot_logo.is_valid()) {
OS::get_singleton()->_msec_splash = OS::get_singleton()->get_ticks_msec(); OS::get_singleton()->_msec_splash = OS::get_singleton()->get_ticks_msec();
VisualServer::get_singleton()->set_boot_image(boot_logo, boot_bg_color, boot_logo_scale, boot_logo_filter); RenderingServer::get_singleton()->set_boot_image(boot_logo, boot_bg_color, boot_logo_scale, boot_logo_filter);
} else { } else {
#ifndef NO_DEFAULT_BOOT_LOGO #ifndef NO_DEFAULT_BOOT_LOGO
@ -1367,9 +1367,9 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
#endif #endif
MAIN_PRINT("Main: ClearColor"); MAIN_PRINT("Main: ClearColor");
VisualServer::get_singleton()->set_default_clear_color(boot_bg_color); RenderingServer::get_singleton()->set_default_clear_color(boot_bg_color);
MAIN_PRINT("Main: Image"); MAIN_PRINT("Main: Image");
VisualServer::get_singleton()->set_boot_image(splash, boot_bg_color, false); RenderingServer::get_singleton()->set_boot_image(splash, boot_bg_color, false);
#endif #endif
} }
@ -1380,7 +1380,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
} }
MAIN_PRINT("Main: DCC"); MAIN_PRINT("Main: DCC");
VisualServer::get_singleton()->set_default_clear_color(GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3))); RenderingServer::get_singleton()->set_default_clear_color(GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3)));
MAIN_PRINT("Main: END"); MAIN_PRINT("Main: END");
GLOBAL_DEF("application/config/icon", String()); GLOBAL_DEF("application/config/icon", String());
@ -1826,7 +1826,7 @@ bool Main::start() {
{ {
int directional_atlas_size = GLOBAL_GET("rendering/quality/directional_shadow/size"); int directional_atlas_size = GLOBAL_GET("rendering/quality/directional_shadow/size");
VisualServer::get_singleton()->directional_shadow_atlas_set_size(directional_atlas_size); RenderingServer::get_singleton()->directional_shadow_atlas_set_size(directional_atlas_size);
} }
if (!editor && !project_manager) { if (!editor && !project_manager) {
@ -2101,25 +2101,25 @@ bool Main::iteration() {
uint64_t physics_begin = OS::get_singleton()->get_ticks_usec(); uint64_t physics_begin = OS::get_singleton()->get_ticks_usec();
PhysicsServer::get_singleton()->sync(); PhysicsServer3D::get_singleton()->sync();
PhysicsServer::get_singleton()->flush_queries(); PhysicsServer3D::get_singleton()->flush_queries();
Physics2DServer::get_singleton()->sync(); PhysicsServer2D::get_singleton()->sync();
Physics2DServer::get_singleton()->flush_queries(); PhysicsServer2D::get_singleton()->flush_queries();
if (OS::get_singleton()->get_main_loop()->iteration(frame_slice * time_scale)) { if (OS::get_singleton()->get_main_loop()->iteration(frame_slice * time_scale)) {
exit = true; exit = true;
break; break;
} }
NavigationServer::get_singleton_mut()->process(frame_slice * time_scale); NavigationServer3D::get_singleton_mut()->process(frame_slice * time_scale);
message_queue->flush(); message_queue->flush();
PhysicsServer::get_singleton()->step(frame_slice * time_scale); PhysicsServer3D::get_singleton()->step(frame_slice * time_scale);
Physics2DServer::get_singleton()->end_sync(); PhysicsServer2D::get_singleton()->end_sync();
Physics2DServer::get_singleton()->step(frame_slice * time_scale); PhysicsServer2D::get_singleton()->step(frame_slice * time_scale);
message_queue->flush(); message_queue->flush();
@ -2137,17 +2137,17 @@ bool Main::iteration() {
} }
message_queue->flush(); message_queue->flush();
VisualServer::get_singleton()->sync(); //sync if still drawing from previous frames. RenderingServer::get_singleton()->sync(); //sync if still drawing from previous frames.
if (DisplayServer::get_singleton()->can_any_window_draw() && !disable_render_loop) { if (DisplayServer::get_singleton()->can_any_window_draw() && !disable_render_loop) {
if ((!force_redraw_requested) && OS::get_singleton()->is_in_low_processor_usage_mode()) { if ((!force_redraw_requested) && OS::get_singleton()->is_in_low_processor_usage_mode()) {
if (VisualServer::get_singleton()->has_changed()) { if (RenderingServer::get_singleton()->has_changed()) {
VisualServer::get_singleton()->draw(true, scaled_step); // flush visual commands RenderingServer::get_singleton()->draw(true, scaled_step); // flush visual commands
Engine::get_singleton()->frames_drawn++; Engine::get_singleton()->frames_drawn++;
} }
} else { } else {
VisualServer::get_singleton()->draw(true, scaled_step); // flush visual commands RenderingServer::get_singleton()->draw(true, scaled_step); // flush visual commands
Engine::get_singleton()->frames_drawn++; Engine::get_singleton()->frames_drawn++;
force_redraw_requested = false; force_redraw_requested = false;
} }
@ -2262,7 +2262,7 @@ void Main::cleanup() {
ScriptServer::finish_languages(); ScriptServer::finish_languages();
// Sync pending commands that may have been queued from a different thread during ScriptServer finalization // Sync pending commands that may have been queued from a different thread during ScriptServer finalization
VisualServer::get_singleton()->sync(); RenderingServer::get_singleton()->sync();
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
EditorNode::unregister_editor_types(); EditorNode::unregister_editor_types();

View File

@ -35,9 +35,9 @@
#include "scene/main/node.h" #include "scene/main/node.h"
#include "scene/main/scene_tree.h" #include "scene/main/scene_tree.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/physics_2d_server.h" #include "servers/physics_server_2d.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
Performance *Performance::singleton = NULL; Performance *Performance::singleton = NULL;
@ -135,22 +135,22 @@ float Performance::get_monitor(Monitor p_monitor) const {
case OBJECT_RESOURCE_COUNT: return ResourceCache::get_cached_resource_count(); case OBJECT_RESOURCE_COUNT: return ResourceCache::get_cached_resource_count();
case OBJECT_NODE_COUNT: return _get_node_count(); case OBJECT_NODE_COUNT: return _get_node_count();
case OBJECT_ORPHAN_NODE_COUNT: return Node::orphan_node_count; case OBJECT_ORPHAN_NODE_COUNT: return Node::orphan_node_count;
case RENDER_OBJECTS_IN_FRAME: return VS::get_singleton()->get_render_info(VS::INFO_OBJECTS_IN_FRAME); case RENDER_OBJECTS_IN_FRAME: return RS::get_singleton()->get_render_info(RS::INFO_OBJECTS_IN_FRAME);
case RENDER_VERTICES_IN_FRAME: return VS::get_singleton()->get_render_info(VS::INFO_VERTICES_IN_FRAME); case RENDER_VERTICES_IN_FRAME: return RS::get_singleton()->get_render_info(RS::INFO_VERTICES_IN_FRAME);
case RENDER_MATERIAL_CHANGES_IN_FRAME: return VS::get_singleton()->get_render_info(VS::INFO_MATERIAL_CHANGES_IN_FRAME); case RENDER_MATERIAL_CHANGES_IN_FRAME: return RS::get_singleton()->get_render_info(RS::INFO_MATERIAL_CHANGES_IN_FRAME);
case RENDER_SHADER_CHANGES_IN_FRAME: return VS::get_singleton()->get_render_info(VS::INFO_SHADER_CHANGES_IN_FRAME); case RENDER_SHADER_CHANGES_IN_FRAME: return RS::get_singleton()->get_render_info(RS::INFO_SHADER_CHANGES_IN_FRAME);
case RENDER_SURFACE_CHANGES_IN_FRAME: return VS::get_singleton()->get_render_info(VS::INFO_SURFACE_CHANGES_IN_FRAME); case RENDER_SURFACE_CHANGES_IN_FRAME: return RS::get_singleton()->get_render_info(RS::INFO_SURFACE_CHANGES_IN_FRAME);
case RENDER_DRAW_CALLS_IN_FRAME: return VS::get_singleton()->get_render_info(VS::INFO_DRAW_CALLS_IN_FRAME); case RENDER_DRAW_CALLS_IN_FRAME: return RS::get_singleton()->get_render_info(RS::INFO_DRAW_CALLS_IN_FRAME);
case RENDER_VIDEO_MEM_USED: return VS::get_singleton()->get_render_info(VS::INFO_VIDEO_MEM_USED); case RENDER_VIDEO_MEM_USED: return RS::get_singleton()->get_render_info(RS::INFO_VIDEO_MEM_USED);
case RENDER_TEXTURE_MEM_USED: return VS::get_singleton()->get_render_info(VS::INFO_TEXTURE_MEM_USED); case RENDER_TEXTURE_MEM_USED: return RS::get_singleton()->get_render_info(RS::INFO_TEXTURE_MEM_USED);
case RENDER_VERTEX_MEM_USED: return VS::get_singleton()->get_render_info(VS::INFO_VERTEX_MEM_USED); case RENDER_VERTEX_MEM_USED: return RS::get_singleton()->get_render_info(RS::INFO_VERTEX_MEM_USED);
case RENDER_USAGE_VIDEO_MEM_TOTAL: return VS::get_singleton()->get_render_info(VS::INFO_USAGE_VIDEO_MEM_TOTAL); case RENDER_USAGE_VIDEO_MEM_TOTAL: return RS::get_singleton()->get_render_info(RS::INFO_USAGE_VIDEO_MEM_TOTAL);
case PHYSICS_2D_ACTIVE_OBJECTS: return Physics2DServer::get_singleton()->get_process_info(Physics2DServer::INFO_ACTIVE_OBJECTS); case PHYSICS_2D_ACTIVE_OBJECTS: return PhysicsServer2D::get_singleton()->get_process_info(PhysicsServer2D::INFO_ACTIVE_OBJECTS);
case PHYSICS_2D_COLLISION_PAIRS: return Physics2DServer::get_singleton()->get_process_info(Physics2DServer::INFO_COLLISION_PAIRS); case PHYSICS_2D_COLLISION_PAIRS: return PhysicsServer2D::get_singleton()->get_process_info(PhysicsServer2D::INFO_COLLISION_PAIRS);
case PHYSICS_2D_ISLAND_COUNT: return Physics2DServer::get_singleton()->get_process_info(Physics2DServer::INFO_ISLAND_COUNT); case PHYSICS_2D_ISLAND_COUNT: return PhysicsServer2D::get_singleton()->get_process_info(PhysicsServer2D::INFO_ISLAND_COUNT);
case PHYSICS_3D_ACTIVE_OBJECTS: return PhysicsServer::get_singleton()->get_process_info(PhysicsServer::INFO_ACTIVE_OBJECTS); case PHYSICS_3D_ACTIVE_OBJECTS: return PhysicsServer3D::get_singleton()->get_process_info(PhysicsServer3D::INFO_ACTIVE_OBJECTS);
case PHYSICS_3D_COLLISION_PAIRS: return PhysicsServer::get_singleton()->get_process_info(PhysicsServer::INFO_COLLISION_PAIRS); case PHYSICS_3D_COLLISION_PAIRS: return PhysicsServer3D::get_singleton()->get_process_info(PhysicsServer3D::INFO_COLLISION_PAIRS);
case PHYSICS_3D_ISLAND_COUNT: return PhysicsServer::get_singleton()->get_process_info(PhysicsServer::INFO_ISLAND_COUNT); case PHYSICS_3D_ISLAND_COUNT: return PhysicsServer3D::get_singleton()->get_process_info(PhysicsServer3D::INFO_ISLAND_COUNT);
case AUDIO_OUTPUT_LATENCY: return AudioServer::get_singleton()->get_output_latency(); case AUDIO_OUTPUT_LATENCY: return AudioServer::get_singleton()->get_output_latency();
default: { default: {

View File

@ -43,7 +43,7 @@
#include "core/vmap.h" #include "core/vmap.h"
#include "scene/main/node.h" #include "scene/main/node.h"
#include "scene/resources/texture.h" #include "scene/resources/texture.h"
#include "servers/visual/shader_language.h" #include "servers/rendering/shader_language.h"
#include "core/method_ptrcall.h" #include "core/method_ptrcall.h"

View File

@ -37,8 +37,8 @@
#include "core/os/os.h" #include "core/os/os.h"
#include "core/print_string.h" #include "core/print_string.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
class TestPhysicsMainLoop : public MainLoop { class TestPhysicsMainLoop : public MainLoop {
@ -65,13 +65,13 @@ class TestPhysicsMainLoop : public MainLoop {
Point2 joy_direction; Point2 joy_direction;
List<RID> bodies; List<RID> bodies;
Map<PhysicsServer::ShapeType, RID> type_shape_map; Map<PhysicsServer3D::ShapeType, RID> type_shape_map;
Map<PhysicsServer::ShapeType, RID> type_mesh_map; Map<PhysicsServer3D::ShapeType, RID> type_mesh_map;
void body_changed_transform(Object *p_state, RID p_visual_instance) { void body_changed_transform(Object *p_state, RID p_visual_instance) {
PhysicsDirectBodyState *state = (PhysicsDirectBodyState *)p_state; PhysicsDirectBodyState3D *state = (PhysicsDirectBodyState3D *)p_state;
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
Transform t = state->get_transform(); Transform t = state->get_transform();
vs->instance_set_transform(p_visual_instance, t); vs->instance_set_transform(p_visual_instance, t);
} }
@ -84,23 +84,23 @@ protected:
ClassDB::bind_method("body_changed_transform", &TestPhysicsMainLoop::body_changed_transform); ClassDB::bind_method("body_changed_transform", &TestPhysicsMainLoop::body_changed_transform);
} }
RID create_body(PhysicsServer::ShapeType p_shape, PhysicsServer::BodyMode p_body, const Transform p_location, bool p_active_default = true, const Transform &p_shape_xform = Transform()) { RID create_body(PhysicsServer3D::ShapeType p_shape, PhysicsServer3D::BodyMode p_body, const Transform p_location, bool p_active_default = true, const Transform &p_shape_xform = Transform()) {
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
RID mesh_instance = vs->instance_create2(type_mesh_map[p_shape], scenario); RID mesh_instance = vs->instance_create2(type_mesh_map[p_shape], scenario);
RID body = ps->body_create(p_body, !p_active_default); RID body = ps->body_create(p_body, !p_active_default);
ps->body_set_space(body, space); ps->body_set_space(body, space);
ps->body_set_param(body, PhysicsServer::BODY_PARAM_BOUNCE, 0.0); ps->body_set_param(body, PhysicsServer3D::BODY_PARAM_BOUNCE, 0.0);
//todo set space //todo set space
ps->body_add_shape(body, type_shape_map[p_shape]); ps->body_add_shape(body, type_shape_map[p_shape]);
ps->body_set_force_integration_callback(body, this, "body_changed_transform", mesh_instance); ps->body_set_force_integration_callback(body, this, "body_changed_transform", mesh_instance);
ps->body_set_state(body, PhysicsServer::BODY_STATE_TRANSFORM, p_location); ps->body_set_state(body, PhysicsServer3D::BODY_STATE_TRANSFORM, p_location);
bodies.push_back(body); bodies.push_back(body);
if (p_body == PhysicsServer::BODY_MODE_STATIC) { if (p_body == PhysicsServer3D::BODY_MODE_STATIC) {
vs->instance_set_transform(mesh_instance, p_location); vs->instance_set_transform(mesh_instance, p_location);
} }
@ -109,12 +109,12 @@ protected:
RID create_static_plane(const Plane &p_plane) { RID create_static_plane(const Plane &p_plane) {
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
RID world_margin_shape = ps->shape_create(PhysicsServer::SHAPE_PLANE); RID world_margin_shape = ps->shape_create(PhysicsServer3D::SHAPE_PLANE);
ps->shape_set_data(world_margin_shape, p_plane); ps->shape_set_data(world_margin_shape, p_plane);
RID b = ps->body_create(PhysicsServer::BODY_MODE_STATIC); RID b = ps->body_create(PhysicsServer3D::BODY_MODE_STATIC);
ps->body_set_space(b, space); ps->body_set_space(b, space);
//todo set space //todo set space
ps->body_add_shape(b, world_margin_shape); ps->body_add_shape(b, world_margin_shape);
@ -123,24 +123,24 @@ protected:
void configure_body(RID p_body, float p_mass, float p_friction, float p_bounce) { void configure_body(RID p_body, float p_mass, float p_friction, float p_bounce) {
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
ps->body_set_param(p_body, PhysicsServer::BODY_PARAM_MASS, p_mass); ps->body_set_param(p_body, PhysicsServer3D::BODY_PARAM_MASS, p_mass);
ps->body_set_param(p_body, PhysicsServer::BODY_PARAM_FRICTION, p_friction); ps->body_set_param(p_body, PhysicsServer3D::BODY_PARAM_FRICTION, p_friction);
ps->body_set_param(p_body, PhysicsServer::BODY_PARAM_BOUNCE, p_bounce); ps->body_set_param(p_body, PhysicsServer3D::BODY_PARAM_BOUNCE, p_bounce);
} }
void init_shapes() { void init_shapes() {
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
/* SPHERE SHAPE */ /* SPHERE SHAPE */
RID sphere_mesh = vs->make_sphere_mesh(10, 20, 0.5); RID sphere_mesh = vs->make_sphere_mesh(10, 20, 0.5);
type_mesh_map[PhysicsServer::SHAPE_SPHERE] = sphere_mesh; type_mesh_map[PhysicsServer3D::SHAPE_SPHERE] = sphere_mesh;
RID sphere_shape = ps->shape_create(PhysicsServer::SHAPE_SPHERE); RID sphere_shape = ps->shape_create(PhysicsServer3D::SHAPE_SPHERE);
ps->shape_set_data(sphere_shape, 0.5); ps->shape_set_data(sphere_shape, 0.5);
type_shape_map[PhysicsServer::SHAPE_SPHERE] = sphere_shape; type_shape_map[PhysicsServer3D::SHAPE_SPHERE] = sphere_shape;
/* BOX SHAPE */ /* BOX SHAPE */
@ -148,11 +148,11 @@ protected:
RID box_mesh = vs->mesh_create(); RID box_mesh = vs->mesh_create();
Geometry::MeshData box_data = Geometry::build_convex_mesh(box_planes); Geometry::MeshData box_data = Geometry::build_convex_mesh(box_planes);
vs->mesh_add_surface_from_mesh_data(box_mesh, box_data); vs->mesh_add_surface_from_mesh_data(box_mesh, box_data);
type_mesh_map[PhysicsServer::SHAPE_BOX] = box_mesh; type_mesh_map[PhysicsServer3D::SHAPE_BOX] = box_mesh;
RID box_shape = ps->shape_create(PhysicsServer::SHAPE_BOX); RID box_shape = ps->shape_create(PhysicsServer3D::SHAPE_BOX);
ps->shape_set_data(box_shape, Vector3(0.5, 0.5, 0.5)); ps->shape_set_data(box_shape, Vector3(0.5, 0.5, 0.5));
type_shape_map[PhysicsServer::SHAPE_BOX] = box_shape; type_shape_map[PhysicsServer3D::SHAPE_BOX] = box_shape;
/* CAPSULE SHAPE */ /* CAPSULE SHAPE */
@ -162,14 +162,14 @@ protected:
Geometry::MeshData capsule_data = Geometry::build_convex_mesh(capsule_planes); Geometry::MeshData capsule_data = Geometry::build_convex_mesh(capsule_planes);
vs->mesh_add_surface_from_mesh_data(capsule_mesh, capsule_data); vs->mesh_add_surface_from_mesh_data(capsule_mesh, capsule_data);
type_mesh_map[PhysicsServer::SHAPE_CAPSULE] = capsule_mesh; type_mesh_map[PhysicsServer3D::SHAPE_CAPSULE] = capsule_mesh;
RID capsule_shape = ps->shape_create(PhysicsServer::SHAPE_CAPSULE); RID capsule_shape = ps->shape_create(PhysicsServer3D::SHAPE_CAPSULE);
Dictionary capsule_params; Dictionary capsule_params;
capsule_params["radius"] = 0.5; capsule_params["radius"] = 0.5;
capsule_params["height"] = 1.4; capsule_params["height"] = 1.4;
ps->shape_set_data(capsule_shape, capsule_params); ps->shape_set_data(capsule_shape, capsule_params);
type_shape_map[PhysicsServer::SHAPE_CAPSULE] = capsule_shape; type_shape_map[PhysicsServer3D::SHAPE_CAPSULE] = capsule_shape;
/* CONVEX SHAPE */ /* CONVEX SHAPE */
@ -180,18 +180,18 @@ protected:
QuickHull::build(convex_data.vertices, convex_data); QuickHull::build(convex_data.vertices, convex_data);
vs->mesh_add_surface_from_mesh_data(convex_mesh, convex_data); vs->mesh_add_surface_from_mesh_data(convex_mesh, convex_data);
type_mesh_map[PhysicsServer::SHAPE_CONVEX_POLYGON] = convex_mesh; type_mesh_map[PhysicsServer3D::SHAPE_CONVEX_POLYGON] = convex_mesh;
RID convex_shape = ps->shape_create(PhysicsServer::SHAPE_CONVEX_POLYGON); RID convex_shape = ps->shape_create(PhysicsServer3D::SHAPE_CONVEX_POLYGON);
ps->shape_set_data(convex_shape, convex_data.vertices); ps->shape_set_data(convex_shape, convex_data.vertices);
type_shape_map[PhysicsServer::SHAPE_CONVEX_POLYGON] = convex_shape; type_shape_map[PhysicsServer3D::SHAPE_CONVEX_POLYGON] = convex_shape;
} }
void make_trimesh(Vector<Vector3> p_faces, const Transform &p_xform = Transform()) { void make_trimesh(Vector<Vector3> p_faces, const Transform &p_xform = Transform()) {
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
RID trimesh_shape = ps->shape_create(PhysicsServer::SHAPE_CONCAVE_POLYGON); RID trimesh_shape = ps->shape_create(PhysicsServer3D::SHAPE_CONCAVE_POLYGON);
ps->shape_set_data(trimesh_shape, p_faces); ps->shape_set_data(trimesh_shape, p_faces);
p_faces = ps->shape_get_data(trimesh_shape); // optimized one p_faces = ps->shape_get_data(trimesh_shape); // optimized one
Vector<Vector3> normals; // for drawing Vector<Vector3> normals; // for drawing
@ -205,19 +205,19 @@ protected:
RID trimesh_mesh = vs->mesh_create(); RID trimesh_mesh = vs->mesh_create();
Array d; Array d;
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
d[VS::ARRAY_VERTEX] = p_faces; d[RS::ARRAY_VERTEX] = p_faces;
d[VS::ARRAY_NORMAL] = normals; d[RS::ARRAY_NORMAL] = normals;
vs->mesh_add_surface_from_arrays(trimesh_mesh, VS::PRIMITIVE_TRIANGLES, d); vs->mesh_add_surface_from_arrays(trimesh_mesh, RS::PRIMITIVE_TRIANGLES, d);
RID triins = vs->instance_create2(trimesh_mesh, scenario); RID triins = vs->instance_create2(trimesh_mesh, scenario);
RID tribody = ps->body_create(PhysicsServer::BODY_MODE_STATIC); RID tribody = ps->body_create(PhysicsServer3D::BODY_MODE_STATIC);
ps->body_set_space(tribody, space); ps->body_set_space(tribody, space);
//todo set space //todo set space
ps->body_add_shape(tribody, trimesh_shape); ps->body_add_shape(tribody, trimesh_shape);
Transform tritrans = p_xform; Transform tritrans = p_xform;
ps->body_set_state(tribody, PhysicsServer::BODY_STATE_TRANSFORM, tritrans); ps->body_set_state(tribody, PhysicsServer3D::BODY_STATE_TRANSFORM, tritrans);
vs->instance_set_transform(triins, tritrans); vs->instance_set_transform(triins, tritrans);
} }
@ -276,11 +276,11 @@ public:
if (mover.is_valid()) { if (mover.is_valid()) {
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
Transform t = ps->body_get_state(mover, PhysicsServer::BODY_STATE_TRANSFORM); Transform t = ps->body_get_state(mover, PhysicsServer3D::BODY_STATE_TRANSFORM);
t.origin += Vector3(x, y, 0); t.origin += Vector3(x, y, 0);
ps->body_set_state(mover, PhysicsServer::BODY_STATE_TRANSFORM, t); ps->body_set_state(mover, PhysicsServer3D::BODY_STATE_TRANSFORM, t);
} }
} }
} }
@ -294,11 +294,11 @@ public:
ofs_x = ofs_y = 0; ofs_x = ofs_y = 0;
init_shapes(); init_shapes();
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
space = ps->space_create(); space = ps->space_create();
ps->space_set_active(space, true); ps->space_set_active(space, true);
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
/* LIGHT */ /* LIGHT */
RID lightaux = vs->directional_light_create(); RID lightaux = vs->directional_light_create();
@ -335,17 +335,17 @@ public:
if (mover.is_valid()) { if (mover.is_valid()) {
static float joy_speed = 10; static float joy_speed = 10;
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
Transform t = ps->body_get_state(mover, PhysicsServer::BODY_STATE_TRANSFORM); Transform t = ps->body_get_state(mover, PhysicsServer3D::BODY_STATE_TRANSFORM);
t.origin += Vector3(joy_speed * joy_direction.x * p_time, -joy_speed * joy_direction.y * p_time, 0); t.origin += Vector3(joy_speed * joy_direction.x * p_time, -joy_speed * joy_direction.y * p_time, 0);
ps->body_set_state(mover, PhysicsServer::BODY_STATE_TRANSFORM, t); ps->body_set_state(mover, PhysicsServer3D::BODY_STATE_TRANSFORM, t);
}; };
Transform cameratr; Transform cameratr;
cameratr.rotate(Vector3(0, 1, 0), ofs_x); cameratr.rotate(Vector3(0, 1, 0), ofs_x);
cameratr.rotate(Vector3(1, 0, 0), -ofs_y); cameratr.rotate(Vector3(1, 0, 0), -ofs_y);
cameratr.translate(Vector3(0, 2, 8)); cameratr.translate(Vector3(0, 2, 8));
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
vs->camera_set_transform(camera, cameratr); vs->camera_set_transform(camera, cameratr);
return quit; return quit;
@ -361,17 +361,17 @@ public:
void test_character() { void test_character() {
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
PhysicsServer *ps = PhysicsServer::get_singleton(); PhysicsServer3D *ps = PhysicsServer3D::get_singleton();
Vector<Plane> capsule_planes = Geometry::build_capsule_planes(0.5, 1, 12, 5, Vector3::AXIS_Y); Vector<Plane> capsule_planes = Geometry::build_capsule_planes(0.5, 1, 12, 5, Vector3::AXIS_Y);
RID capsule_mesh = vs->mesh_create(); RID capsule_mesh = vs->mesh_create();
Geometry::MeshData capsule_data = Geometry::build_convex_mesh(capsule_planes); Geometry::MeshData capsule_data = Geometry::build_convex_mesh(capsule_planes);
vs->mesh_add_surface_from_mesh_data(capsule_mesh, capsule_data); vs->mesh_add_surface_from_mesh_data(capsule_mesh, capsule_data);
type_mesh_map[PhysicsServer::SHAPE_CAPSULE] = capsule_mesh; type_mesh_map[PhysicsServer3D::SHAPE_CAPSULE] = capsule_mesh;
RID capsule_shape = ps->shape_create(PhysicsServer::SHAPE_CAPSULE); RID capsule_shape = ps->shape_create(PhysicsServer3D::SHAPE_CAPSULE);
Dictionary capsule_params; Dictionary capsule_params;
capsule_params["radius"] = 0.5; capsule_params["radius"] = 0.5;
capsule_params["height"] = 1; capsule_params["height"] = 1;
@ -381,14 +381,14 @@ public:
ps->shape_set_data(capsule_shape, capsule_params); ps->shape_set_data(capsule_shape, capsule_params);
RID mesh_instance = vs->instance_create2(capsule_mesh, scenario); RID mesh_instance = vs->instance_create2(capsule_mesh, scenario);
character = ps->body_create(PhysicsServer::BODY_MODE_CHARACTER); character = ps->body_create(PhysicsServer3D::BODY_MODE_CHARACTER);
ps->body_set_space(character, space); ps->body_set_space(character, space);
//todo add space //todo add space
ps->body_add_shape(character, capsule_shape); ps->body_add_shape(character, capsule_shape);
ps->body_set_force_integration_callback(character, this, "body_changed_transform", mesh_instance); ps->body_set_force_integration_callback(character, this, "body_changed_transform", mesh_instance);
ps->body_set_state(character, PhysicsServer::BODY_STATE_TRANSFORM, Transform(Basis(), Vector3(-2, 5, -2))); ps->body_set_state(character, PhysicsServer3D::BODY_STATE_TRANSFORM, Transform(Basis(), Vector3(-2, 5, -2)));
bodies.push_back(character); bodies.push_back(character);
} }
@ -396,21 +396,21 @@ public:
for (int i = 0; i < 35; i++) { for (int i = 0; i < 35; i++) {
static const PhysicsServer::ShapeType shape_idx[] = { static const PhysicsServer3D::ShapeType shape_idx[] = {
PhysicsServer::SHAPE_CAPSULE, PhysicsServer3D::SHAPE_CAPSULE,
PhysicsServer::SHAPE_BOX, PhysicsServer3D::SHAPE_BOX,
PhysicsServer::SHAPE_SPHERE, PhysicsServer3D::SHAPE_SPHERE,
PhysicsServer::SHAPE_CONVEX_POLYGON PhysicsServer3D::SHAPE_CONVEX_POLYGON
}; };
PhysicsServer::ShapeType type = shape_idx[i % 4]; PhysicsServer3D::ShapeType type = shape_idx[i % 4];
Transform t; Transform t;
t.origin = Vector3(0.0 * i, 3.5 + 1.1 * i, 0.7 + 0.0 * i); t.origin = Vector3(0.0 * i, 3.5 + 1.1 * i, 0.7 + 0.0 * i);
t.basis.rotate(Vector3(0.2, -1, 0), Math_PI / 2 * 0.6); t.basis.rotate(Vector3(0.2, -1, 0), Math_PI / 2 * 0.6);
create_body(type, PhysicsServer::BODY_MODE_RIGID, t); create_body(type, PhysicsServer3D::BODY_MODE_RIGID, t);
} }
create_static_plane(Plane(Vector3(0, 1, 0), -1)); create_static_plane(Plane(Vector3(0, 1, 0), -1));
@ -418,7 +418,7 @@ public:
void test_activate() { void test_activate() {
create_body(PhysicsServer::SHAPE_BOX, PhysicsServer::BODY_MODE_RIGID, Transform(Basis(), Vector3(0, 2, 0)), true); create_body(PhysicsServer3D::SHAPE_BOX, PhysicsServer3D::BODY_MODE_RIGID, Transform(Basis(), Vector3(0, 2, 0)), true);
create_static_plane(Plane(Vector3(0, 1, 0), -1)); create_static_plane(Plane(Vector3(0, 1, 0), -1));
} }

File diff suppressed because one or more lines are too long

View File

@ -37,7 +37,7 @@
#include "core/os/os.h" #include "core/os/os.h"
#include "core/print_string.h" #include "core/print_string.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
#define OBJECT_COUNT 50 #define OBJECT_COUNT 50
@ -75,7 +75,7 @@ public:
virtual void init() { virtual void init() {
print_line("INITIALIZING TEST RENDER"); print_line("INITIALIZING TEST RENDER");
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
test_cube = vs->get_test_cube(); test_cube = vs->get_test_cube();
scenario = vs->scenario_create(); scenario = vs->scenario_create();
@ -126,7 +126,7 @@ public:
print_line("ERR: " + itos(err)); print_line("ERR: " + itos(err));
test_cube = vs->mesh_create(); test_cube = vs->mesh_create();
vs->mesh_add_surface_from_mesh_data(test_cube, md); vs->mesh_add_surface_from_mesh_data(test_cube, md);
//vs->scenario_set_debug(scenario,VS::SCENARIO_DEBUG_WIREFRAME); //vs->scenario_set_debug(scenario,RS::SCENARIO_DEBUG_WIREFRAME);
/* /*
RID sm = vs->shader_create(); RID sm = vs->shader_create();
@ -174,16 +174,16 @@ public:
vs->camera_set_perspective(camera, 60, 0.1, 1000); vs->camera_set_perspective(camera, 60, 0.1, 1000);
/* /*
RID lightaux = vs->light_create( VisualServer::LIGHT_OMNI ); RID lightaux = vs->light_create( RenderingServer::LIGHT_OMNI );
vs->light_set_var( lightaux, VisualServer::LIGHT_VAR_RADIUS, 80 ); vs->light_set_var( lightaux, RenderingServer::LIGHT_VAR_RADIUS, 80 );
vs->light_set_var( lightaux, VisualServer::LIGHT_VAR_ATTENUATION, 1 ); vs->light_set_var( lightaux, RenderingServer::LIGHT_VAR_ATTENUATION, 1 );
vs->light_set_var( lightaux, VisualServer::LIGHT_VAR_ENERGY, 1.5 ); vs->light_set_var( lightaux, RenderingServer::LIGHT_VAR_ENERGY, 1.5 );
light = vs->instance_create( lightaux ); light = vs->instance_create( lightaux );
*/ */
RID lightaux; RID lightaux;
lightaux = vs->directional_light_create(); lightaux = vs->directional_light_create();
//vs->light_set_color( lightaux, VisualServer::LIGHT_COLOR_AMBIENT, Color(0.0,0.0,0.0) ); //vs->light_set_color( lightaux, RenderingServer::LIGHT_COLOR_AMBIENT, Color(0.0,0.0,0.0) );
vs->light_set_color(lightaux, Color(1.0, 1.0, 1.0)); vs->light_set_color(lightaux, Color(1.0, 1.0, 1.0));
//vs->light_set_shadow( lightaux, true ); //vs->light_set_shadow( lightaux, true );
light = vs->instance_create2(lightaux, scenario); light = vs->instance_create2(lightaux, scenario);
@ -194,10 +194,10 @@ public:
vs->instance_set_transform(light, lla); vs->instance_set_transform(light, lla);
lightaux = vs->omni_light_create(); lightaux = vs->omni_light_create();
//vs->light_set_color( lightaux, VisualServer::LIGHT_COLOR_AMBIENT, Color(0.0,0.0,1.0) ); //vs->light_set_color( lightaux, RenderingServer::LIGHT_COLOR_AMBIENT, Color(0.0,0.0,1.0) );
vs->light_set_color(lightaux, Color(1.0, 1.0, 0.0)); vs->light_set_color(lightaux, Color(1.0, 1.0, 0.0));
vs->light_set_param(lightaux, VisualServer::LIGHT_PARAM_RANGE, 4); vs->light_set_param(lightaux, RenderingServer::LIGHT_PARAM_RANGE, 4);
vs->light_set_param(lightaux, VisualServer::LIGHT_PARAM_ENERGY, 8); vs->light_set_param(lightaux, RenderingServer::LIGHT_PARAM_ENERGY, 8);
//vs->light_set_shadow( lightaux, true ); //vs->light_set_shadow( lightaux, true );
//light = vs->instance_create( lightaux ); //light = vs->instance_create( lightaux );
@ -206,7 +206,7 @@ public:
} }
virtual bool iteration(float p_time) { virtual bool iteration(float p_time) {
VisualServer *vs = VisualServer::get_singleton(); RenderingServer *vs = RenderingServer::get_singleton();
//Transform t; //Transform t;
//t.rotate(Vector3(0, 1, 0), ofs); //t.rotate(Vector3(0, 1, 0), ofs);
//t.translate(Vector3(0,0,20 )); //t.translate(Vector3(0,0,20 ));

View File

@ -37,7 +37,7 @@
#include "core/print_string.h" #include "core/print_string.h"
#include "scene/gui/control.h" #include "scene/gui/control.h"
#include "scene/gui/text_edit.h" #include "scene/gui/text_edit.h"
#include "servers/visual/shader_language.h" #include "servers/rendering/shader_language.h"
typedef ShaderLanguage SL; typedef ShaderLanguage SL;

View File

@ -1208,9 +1208,9 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
} }
Array array_copy; Array array_copy;
array_copy.resize(VisualServer::ARRAY_MAX); array_copy.resize(RenderingServer::ARRAY_MAX);
for (int l = 0; l < VisualServer::ARRAY_MAX; l++) { for (int l = 0; l < RenderingServer::ARRAY_MAX; l++) {
array_copy[l] = array_mesh[l].duplicate(true); array_copy[l] = array_mesh[l].duplicate(true);
} }
@ -1224,13 +1224,13 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
Vector3 position = Vector3(ai_pos.x, ai_pos.y, ai_pos.z); Vector3 position = Vector3(ai_pos.x, ai_pos.y, ai_pos.z);
vertices.ptrw()[l] = position; vertices.ptrw()[l] = position;
} }
PackedVector3Array new_vertices = array_copy[VisualServer::ARRAY_VERTEX].duplicate(true); PackedVector3Array new_vertices = array_copy[RenderingServer::ARRAY_VERTEX].duplicate(true);
ERR_CONTINUE(vertices.size() != new_vertices.size()); ERR_CONTINUE(vertices.size() != new_vertices.size());
for (int32_t l = 0; l < new_vertices.size(); l++) { for (int32_t l = 0; l < new_vertices.size(); l++) {
Vector3 *w = new_vertices.ptrw(); Vector3 *w = new_vertices.ptrw();
w[l] = vertices[l]; w[l] = vertices[l];
} }
array_copy[VisualServer::ARRAY_VERTEX] = new_vertices; array_copy[RenderingServer::ARRAY_VERTEX] = new_vertices;
} }
int32_t color_set = 0; int32_t color_set = 0;
@ -1242,13 +1242,13 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
Color color = Color(ai_color.r, ai_color.g, ai_color.b, ai_color.a); Color color = Color(ai_color.r, ai_color.g, ai_color.b, ai_color.a);
colors.ptrw()[l] = color; colors.ptrw()[l] = color;
} }
PackedColorArray new_colors = array_copy[VisualServer::ARRAY_COLOR].duplicate(true); PackedColorArray new_colors = array_copy[RenderingServer::ARRAY_COLOR].duplicate(true);
ERR_CONTINUE(colors.size() != new_colors.size()); ERR_CONTINUE(colors.size() != new_colors.size());
for (int32_t l = 0; l < colors.size(); l++) { for (int32_t l = 0; l < colors.size(); l++) {
Color *w = new_colors.ptrw(); Color *w = new_colors.ptrw();
w[l] = colors[l]; w[l] = colors[l];
} }
array_copy[VisualServer::ARRAY_COLOR] = new_colors; array_copy[RenderingServer::ARRAY_COLOR] = new_colors;
} }
if (ai_mesh->mAnimMeshes[j]->HasNormals()) { if (ai_mesh->mAnimMeshes[j]->HasNormals()) {
@ -1259,13 +1259,13 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
Vector3 normal = Vector3(ai_normal.x, ai_normal.y, ai_normal.z); Vector3 normal = Vector3(ai_normal.x, ai_normal.y, ai_normal.z);
normals.ptrw()[l] = normal; normals.ptrw()[l] = normal;
} }
PackedVector3Array new_normals = array_copy[VisualServer::ARRAY_NORMAL].duplicate(true); PackedVector3Array new_normals = array_copy[RenderingServer::ARRAY_NORMAL].duplicate(true);
ERR_CONTINUE(normals.size() != new_normals.size()); ERR_CONTINUE(normals.size() != new_normals.size());
for (int l = 0; l < normals.size(); l++) { for (int l = 0; l < normals.size(); l++) {
Vector3 *w = new_normals.ptrw(); Vector3 *w = new_normals.ptrw();
w[l] = normals[l]; w[l] = normals[l];
} }
array_copy[VisualServer::ARRAY_NORMAL] = new_normals; array_copy[RenderingServer::ARRAY_NORMAL] = new_normals;
} }
if (ai_mesh->mAnimMeshes[j]->HasTangentsAndBitangents()) { if (ai_mesh->mAnimMeshes[j]->HasTangentsAndBitangents()) {
@ -1275,7 +1275,7 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
for (size_t l = 0; l < num_vertices; l++) { for (size_t l = 0; l < num_vertices; l++) {
AssimpUtils::calc_tangent_from_mesh(ai_mesh, j, l, l, w); AssimpUtils::calc_tangent_from_mesh(ai_mesh, j, l, l, w);
} }
PackedFloat32Array new_tangents = array_copy[VisualServer::ARRAY_TANGENT].duplicate(true); PackedFloat32Array new_tangents = array_copy[RenderingServer::ARRAY_TANGENT].duplicate(true);
ERR_CONTINUE(new_tangents.size() != tangents.size() * 4); ERR_CONTINUE(new_tangents.size() != tangents.size() * 4);
for (int32_t l = 0; l < tangents.size(); l++) { for (int32_t l = 0; l < tangents.size(); l++) {
new_tangents.ptrw()[l + 0] = tangents[l].r; new_tangents.ptrw()[l + 0] = tangents[l].r;
@ -1283,7 +1283,7 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat
new_tangents.ptrw()[l + 2] = tangents[l].b; new_tangents.ptrw()[l + 2] = tangents[l].b;
new_tangents.ptrw()[l + 3] = tangents[l].a; new_tangents.ptrw()[l + 3] = tangents[l].a;
} }
array_copy[VisualServer::ARRAY_TANGENT] = new_tangents; array_copy[RenderingServer::ARRAY_TANGENT] = new_tangents;
} }
morphs[j] = array_copy; morphs[j] = array_copy;

View File

@ -31,7 +31,7 @@
#include "register_types.h" #include "register_types.h"
#include "core/os/os.h" #include "core/os/os.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
#include "texture_basisu.h" #include "texture_basisu.h"
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
@ -164,10 +164,10 @@ static Ref<Image> basis_universal_unpacker(const Vector<uint8_t> &p_buffer) {
switch (*(uint32_t *)(ptr)) { switch (*(uint32_t *)(ptr)) {
case BASIS_DECOMPRESS_RG: { case BASIS_DECOMPRESS_RG: {
if (VS::get_singleton()->has_os_feature("rgtc")) { if (RS::get_singleton()->has_os_feature("rgtc")) {
format = basist::transcoder_texture_format::cTFBC5; // get this from renderer format = basist::transcoder_texture_format::cTFBC5; // get this from renderer
imgfmt = Image::FORMAT_RGTC_RG; imgfmt = Image::FORMAT_RGTC_RG;
} else if (VS::get_singleton()->has_os_feature("etc2")) { } else if (RS::get_singleton()->has_os_feature("etc2")) {
//unfortunately, basis universal does not support //unfortunately, basis universal does not support
// //
ERR_FAIL_V(image); //unimplemented here ERR_FAIL_V(image); //unimplemented here
@ -179,13 +179,13 @@ static Ref<Image> basis_universal_unpacker(const Vector<uint8_t> &p_buffer) {
} }
} break; } break;
case BASIS_DECOMPRESS_RGB: { case BASIS_DECOMPRESS_RGB: {
if (VS::get_singleton()->has_os_feature("bptc")) { if (RS::get_singleton()->has_os_feature("bptc")) {
format = basist::transcoder_texture_format::cTFBC7_M6_OPAQUE_ONLY; // get this from renderer format = basist::transcoder_texture_format::cTFBC7_M6_OPAQUE_ONLY; // get this from renderer
imgfmt = Image::FORMAT_BPTC_RGBA; imgfmt = Image::FORMAT_BPTC_RGBA;
} else if (VS::get_singleton()->has_os_feature("s3tc")) { } else if (RS::get_singleton()->has_os_feature("s3tc")) {
format = basist::transcoder_texture_format::cTFBC1; // get this from renderer format = basist::transcoder_texture_format::cTFBC1; // get this from renderer
imgfmt = Image::FORMAT_DXT1; imgfmt = Image::FORMAT_DXT1;
} else if (VS::get_singleton()->has_os_feature("etc")) { } else if (RS::get_singleton()->has_os_feature("etc")) {
format = basist::transcoder_texture_format::cTFETC1; // get this from renderer format = basist::transcoder_texture_format::cTFETC1; // get this from renderer
imgfmt = Image::FORMAT_ETC; imgfmt = Image::FORMAT_ETC;
@ -196,13 +196,13 @@ static Ref<Image> basis_universal_unpacker(const Vector<uint8_t> &p_buffer) {
} break; } break;
case BASIS_DECOMPRESS_RGBA: { case BASIS_DECOMPRESS_RGBA: {
if (VS::get_singleton()->has_os_feature("bptc")) { if (RS::get_singleton()->has_os_feature("bptc")) {
format = basist::transcoder_texture_format::cTFBC7_M5; // get this from renderer format = basist::transcoder_texture_format::cTFBC7_M5; // get this from renderer
imgfmt = Image::FORMAT_BPTC_RGBA; imgfmt = Image::FORMAT_BPTC_RGBA;
} else if (VS::get_singleton()->has_os_feature("s3tc")) { } else if (RS::get_singleton()->has_os_feature("s3tc")) {
format = basist::transcoder_texture_format::cTFBC3; // get this from renderer format = basist::transcoder_texture_format::cTFBC3; // get this from renderer
imgfmt = Image::FORMAT_DXT5; imgfmt = Image::FORMAT_DXT5;
} else if (VS::get_singleton()->has_os_feature("etc2")) { } else if (RS::get_singleton()->has_os_feature("etc2")) {
format = basist::transcoder_texture_format::cTFETC2; // get this from renderer format = basist::transcoder_texture_format::cTFETC2; // get this from renderer
imgfmt = Image::FORMAT_ETC2_RGBA8; imgfmt = Image::FORMAT_ETC2_RGBA8;
} else { } else {
@ -212,10 +212,10 @@ static Ref<Image> basis_universal_unpacker(const Vector<uint8_t> &p_buffer) {
} }
} break; } break;
case BASIS_DECOMPRESS_RG_AS_RA: { case BASIS_DECOMPRESS_RG_AS_RA: {
if (VS::get_singleton()->has_os_feature("s3tc")) { if (RS::get_singleton()->has_os_feature("s3tc")) {
format = basist::transcoder_texture_format::cTFBC3; // get this from renderer format = basist::transcoder_texture_format::cTFBC3; // get this from renderer
imgfmt = Image::FORMAT_DXT5_RA_AS_RG; imgfmt = Image::FORMAT_DXT5_RA_AS_RG;
} else if (VS::get_singleton()->has_os_feature("etc2")) { } else if (RS::get_singleton()->has_os_feature("etc2")) {
format = basist::transcoder_texture_format::cTFETC2; // get this from renderer format = basist::transcoder_texture_format::cTFETC2; // get this from renderer
imgfmt = Image::FORMAT_ETC2_RGBA8; imgfmt = Image::FORMAT_ETC2_RGBA8;
} else { } else {

View File

@ -72,7 +72,7 @@ bool TextureBasisU::has_alpha() const {
void TextureBasisU::set_flags(uint32_t p_flags) { void TextureBasisU::set_flags(uint32_t p_flags) {
flags = p_flags; flags = p_flags;
VisualServer::get_singleton()->texture_set_flags(texture, p_flags); RenderingServer::get_singleton()->texture_set_flags(texture, p_flags);
}; };
uint32_t TextureBasisU::get_flags() const { uint32_t TextureBasisU::get_flags() const {
@ -144,8 +144,8 @@ void TextureBasisU::set_basisu_data(const Vector<uint8_t>& p_data) {
img.instance(); img.instance();
img->create(info.m_width, info.m_height, info.m_total_levels > 1, imgfmt, gpudata); img->create(info.m_width, info.m_height, info.m_total_levels > 1, imgfmt, gpudata);
VisualServer::get_singleton()->texture_allocate(texture, tex_size.x, tex_size.y, 0, img->get_format(), VS::TEXTURE_TYPE_2D, flags); RenderingServer::get_singleton()->texture_allocate(texture, tex_size.x, tex_size.y, 0, img->get_format(), RS::TEXTURE_TYPE_2D, flags);
VisualServer::get_singleton()->texture_set_data(texture, img); RenderingServer::get_singleton()->texture_set_data(texture, img);
}; };
Error TextureBasisU::import(const Ref<Image>& p_img) { Error TextureBasisU::import(const Ref<Image>& p_img) {
@ -221,13 +221,13 @@ Vector<uint8_t> TextureBasisU::get_basisu_data() const {
TextureBasisU::TextureBasisU() { TextureBasisU::TextureBasisU() {
flags = FLAGS_DEFAULT; flags = FLAGS_DEFAULT;
texture = VisualServer::get_singleton()->texture_create(); texture = RenderingServer::get_singleton()->texture_create();
}; };
TextureBasisU::~TextureBasisU() { TextureBasisU::~TextureBasisU() {
VisualServer::get_singleton()->free(texture); RenderingServer::get_singleton()->free(texture);
}; };
#endif #endif

View File

@ -46,7 +46,7 @@
AreaBullet::AreaBullet() : AreaBullet::AreaBullet() :
RigidCollisionObjectBullet(CollisionObjectBullet::TYPE_AREA), RigidCollisionObjectBullet(CollisionObjectBullet::TYPE_AREA),
monitorable(true), monitorable(true),
spOv_mode(PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED), spOv_mode(PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED),
spOv_gravityPoint(false), spOv_gravityPoint(false),
spOv_gravityPointDistanceScale(0), spOv_gravityPointDistanceScale(0),
spOv_gravityPointAttenuation(1), spOv_gravityPointAttenuation(1),
@ -86,11 +86,11 @@ void AreaBullet::dispatch_callbacks() {
switch (otherObj.state) { switch (otherObj.state) {
case OVERLAP_STATE_ENTER: case OVERLAP_STATE_ENTER:
otherObj.state = OVERLAP_STATE_INSIDE; otherObj.state = OVERLAP_STATE_INSIDE;
call_event(otherObj.object, PhysicsServer::AREA_BODY_ADDED); call_event(otherObj.object, PhysicsServer3D::AREA_BODY_ADDED);
otherObj.object->on_enter_area(this); otherObj.object->on_enter_area(this);
break; break;
case OVERLAP_STATE_EXIT: case OVERLAP_STATE_EXIT:
call_event(otherObj.object, PhysicsServer::AREA_BODY_REMOVED); call_event(otherObj.object, PhysicsServer3D::AREA_BODY_REMOVED);
otherObj.object->on_exit_area(this); otherObj.object->on_exit_area(this);
overlappingObjects.remove(i); // Remove after callback overlappingObjects.remove(i); // Remove after callback
break; break;
@ -101,7 +101,7 @@ void AreaBullet::dispatch_callbacks() {
} }
} }
void AreaBullet::call_event(CollisionObjectBullet *p_otherObject, PhysicsServer::AreaBodyStatus p_status) { void AreaBullet::call_event(CollisionObjectBullet *p_otherObject, PhysicsServer3D::AreaBodyStatus p_status) {
InOutEventCallback &event = eventsCallbacks[static_cast<int>(p_otherObject->getType())]; InOutEventCallback &event = eventsCallbacks[static_cast<int>(p_otherObject->getType())];
Object *areaGodoObject = ObjectDB::get_instance(event.event_callback_id); Object *areaGodoObject = ObjectDB::get_instance(event.event_callback_id);
@ -130,7 +130,7 @@ void AreaBullet::scratch() {
void AreaBullet::clear_overlaps(bool p_notify) { void AreaBullet::clear_overlaps(bool p_notify) {
for (int i = overlappingObjects.size() - 1; 0 <= i; --i) { for (int i = overlappingObjects.size() - 1; 0 <= i; --i) {
if (p_notify) if (p_notify)
call_event(overlappingObjects[i].object, PhysicsServer::AREA_BODY_REMOVED); call_event(overlappingObjects[i].object, PhysicsServer3D::AREA_BODY_REMOVED);
overlappingObjects[i].object->on_exit_area(this); overlappingObjects[i].object->on_exit_area(this);
} }
overlappingObjects.clear(); overlappingObjects.clear();
@ -140,7 +140,7 @@ void AreaBullet::remove_overlap(CollisionObjectBullet *p_object, bool p_notify)
for (int i = overlappingObjects.size() - 1; 0 <= i; --i) { for (int i = overlappingObjects.size() - 1; 0 <= i; --i) {
if (overlappingObjects[i].object == p_object) { if (overlappingObjects[i].object == p_object) {
if (p_notify) if (p_notify)
call_event(overlappingObjects[i].object, PhysicsServer::AREA_BODY_REMOVED); call_event(overlappingObjects[i].object, PhysicsServer3D::AREA_BODY_REMOVED);
overlappingObjects[i].object->on_exit_area(this); overlappingObjects[i].object->on_exit_area(this);
overlappingObjects.remove(i); overlappingObjects.remove(i);
break; break;
@ -218,30 +218,30 @@ void AreaBullet::put_overlap_as_inside(int p_index) {
} }
} }
void AreaBullet::set_param(PhysicsServer::AreaParameter p_param, const Variant &p_value) { void AreaBullet::set_param(PhysicsServer3D::AreaParameter p_param, const Variant &p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::AREA_PARAM_GRAVITY: case PhysicsServer3D::AREA_PARAM_GRAVITY:
set_spOv_gravityMag(p_value); set_spOv_gravityMag(p_value);
break; break;
case PhysicsServer::AREA_PARAM_GRAVITY_VECTOR: case PhysicsServer3D::AREA_PARAM_GRAVITY_VECTOR:
set_spOv_gravityVec(p_value); set_spOv_gravityVec(p_value);
break; break;
case PhysicsServer::AREA_PARAM_LINEAR_DAMP: case PhysicsServer3D::AREA_PARAM_LINEAR_DAMP:
set_spOv_linearDump(p_value); set_spOv_linearDump(p_value);
break; break;
case PhysicsServer::AREA_PARAM_ANGULAR_DAMP: case PhysicsServer3D::AREA_PARAM_ANGULAR_DAMP:
set_spOv_angularDump(p_value); set_spOv_angularDump(p_value);
break; break;
case PhysicsServer::AREA_PARAM_PRIORITY: case PhysicsServer3D::AREA_PARAM_PRIORITY:
set_spOv_priority(p_value); set_spOv_priority(p_value);
break; break;
case PhysicsServer::AREA_PARAM_GRAVITY_IS_POINT: case PhysicsServer3D::AREA_PARAM_GRAVITY_IS_POINT:
set_spOv_gravityPoint(p_value); set_spOv_gravityPoint(p_value);
break; break;
case PhysicsServer::AREA_PARAM_GRAVITY_DISTANCE_SCALE: case PhysicsServer3D::AREA_PARAM_GRAVITY_DISTANCE_SCALE:
set_spOv_gravityPointDistanceScale(p_value); set_spOv_gravityPointDistanceScale(p_value);
break; break;
case PhysicsServer::AREA_PARAM_GRAVITY_POINT_ATTENUATION: case PhysicsServer3D::AREA_PARAM_GRAVITY_POINT_ATTENUATION:
set_spOv_gravityPointAttenuation(p_value); set_spOv_gravityPointAttenuation(p_value);
break; break;
default: default:
@ -249,23 +249,23 @@ void AreaBullet::set_param(PhysicsServer::AreaParameter p_param, const Variant &
} }
} }
Variant AreaBullet::get_param(PhysicsServer::AreaParameter p_param) const { Variant AreaBullet::get_param(PhysicsServer3D::AreaParameter p_param) const {
switch (p_param) { switch (p_param) {
case PhysicsServer::AREA_PARAM_GRAVITY: case PhysicsServer3D::AREA_PARAM_GRAVITY:
return spOv_gravityMag; return spOv_gravityMag;
case PhysicsServer::AREA_PARAM_GRAVITY_VECTOR: case PhysicsServer3D::AREA_PARAM_GRAVITY_VECTOR:
return spOv_gravityVec; return spOv_gravityVec;
case PhysicsServer::AREA_PARAM_LINEAR_DAMP: case PhysicsServer3D::AREA_PARAM_LINEAR_DAMP:
return spOv_linearDump; return spOv_linearDump;
case PhysicsServer::AREA_PARAM_ANGULAR_DAMP: case PhysicsServer3D::AREA_PARAM_ANGULAR_DAMP:
return spOv_angularDump; return spOv_angularDump;
case PhysicsServer::AREA_PARAM_PRIORITY: case PhysicsServer3D::AREA_PARAM_PRIORITY:
return spOv_priority; return spOv_priority;
case PhysicsServer::AREA_PARAM_GRAVITY_IS_POINT: case PhysicsServer3D::AREA_PARAM_GRAVITY_IS_POINT:
return spOv_gravityPoint; return spOv_gravityPoint;
case PhysicsServer::AREA_PARAM_GRAVITY_DISTANCE_SCALE: case PhysicsServer3D::AREA_PARAM_GRAVITY_DISTANCE_SCALE:
return spOv_gravityPointDistanceScale; return spOv_gravityPointDistanceScale;
case PhysicsServer::AREA_PARAM_GRAVITY_POINT_ATTENUATION: case PhysicsServer3D::AREA_PARAM_GRAVITY_POINT_ATTENUATION:
return spOv_gravityPointAttenuation; return spOv_gravityPointAttenuation;
default: default:
WARN_PRINT("Area doesn't support this parameter in the Bullet backend: " + itos(p_param)); WARN_PRINT("Area doesn't support this parameter in the Bullet backend: " + itos(p_param));

View File

@ -33,7 +33,7 @@
#include "collision_object_bullet.h" #include "collision_object_bullet.h"
#include "core/vector.h" #include "core/vector.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include "space_bullet.h" #include "space_bullet.h"
/** /**
@ -88,7 +88,7 @@ private:
Vector<OverlappingObjectData> overlappingObjects; Vector<OverlappingObjectData> overlappingObjects;
bool monitorable; bool monitorable;
PhysicsServer::AreaSpaceOverrideMode spOv_mode; PhysicsServer3D::AreaSpaceOverrideMode spOv_mode;
bool spOv_gravityPoint; bool spOv_gravityPoint;
real_t spOv_gravityPointDistanceScale; real_t spOv_gravityPointDistanceScale;
real_t spOv_gravityPointAttenuation; real_t spOv_gravityPointAttenuation;
@ -114,8 +114,8 @@ public:
bool is_monitoring() const; bool is_monitoring() const;
_FORCE_INLINE_ void set_spOv_mode(PhysicsServer::AreaSpaceOverrideMode p_mode) { spOv_mode = p_mode; } _FORCE_INLINE_ void set_spOv_mode(PhysicsServer3D::AreaSpaceOverrideMode p_mode) { spOv_mode = p_mode; }
_FORCE_INLINE_ PhysicsServer::AreaSpaceOverrideMode get_spOv_mode() { return spOv_mode; } _FORCE_INLINE_ PhysicsServer3D::AreaSpaceOverrideMode get_spOv_mode() { return spOv_mode; }
_FORCE_INLINE_ void set_spOv_gravityPoint(bool p_isGP) { spOv_gravityPoint = p_isGP; } _FORCE_INLINE_ void set_spOv_gravityPoint(bool p_isGP) { spOv_gravityPoint = p_isGP; }
_FORCE_INLINE_ bool is_spOv_gravityPoint() { return spOv_gravityPoint; } _FORCE_INLINE_ bool is_spOv_gravityPoint() { return spOv_gravityPoint; }
@ -146,7 +146,7 @@ public:
virtual void set_space(SpaceBullet *p_space); virtual void set_space(SpaceBullet *p_space);
virtual void dispatch_callbacks(); virtual void dispatch_callbacks();
void call_event(CollisionObjectBullet *p_otherObject, PhysicsServer::AreaBodyStatus p_status); void call_event(CollisionObjectBullet *p_otherObject, PhysicsServer3D::AreaBodyStatus p_status);
void set_on_state_change(ObjectID p_id, const StringName &p_method, const Variant &p_udata = Variant()); void set_on_state_change(ObjectID p_id, const StringName &p_method, const Variant &p_udata = Variant());
void scratch(); void scratch();
@ -162,8 +162,8 @@ public:
void put_overlap_as_exit(int p_index); void put_overlap_as_exit(int p_index);
void put_overlap_as_inside(int p_index); void put_overlap_as_inside(int p_index);
void set_param(PhysicsServer::AreaParameter p_param, const Variant &p_value); void set_param(PhysicsServer3D::AreaParameter p_param, const Variant &p_value);
Variant get_param(PhysicsServer::AreaParameter p_param) const; Variant get_param(PhysicsServer3D::AreaParameter p_param) const;
void set_event_callback(Type p_callbackObjectType, ObjectID p_id, const StringName &p_method); void set_event_callback(Type p_callbackObjectType, ObjectID p_id, const StringName &p_method);
bool has_event_callback(Type p_callbackObjectType); bool has_event_callback(Type p_callbackObjectType);

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,7 @@
#include "core/rid_owner.h" #include "core/rid_owner.h"
#include "joint_bullet.h" #include "joint_bullet.h"
#include "rigid_body_bullet.h" #include "rigid_body_bullet.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include "shape_bullet.h" #include "shape_bullet.h"
#include "soft_body_bullet.h" #include "soft_body_bullet.h"
#include "space_bullet.h" #include "space_bullet.h"
@ -44,8 +44,8 @@
@author AndreaCatania @author AndreaCatania
*/ */
class BulletPhysicsServer : public PhysicsServer { class BulletPhysicsServer3D : public PhysicsServer3D {
GDCLASS(BulletPhysicsServer, PhysicsServer); GDCLASS(BulletPhysicsServer3D, PhysicsServer3D);
friend class BulletPhysicsDirectSpaceState; friend class BulletPhysicsDirectSpaceState;
@ -64,8 +64,8 @@ protected:
static void _bind_methods(); static void _bind_methods();
public: public:
BulletPhysicsServer(); BulletPhysicsServer3D();
~BulletPhysicsServer(); ~BulletPhysicsServer3D();
_FORCE_INLINE_ RID_PtrOwner<SpaceBullet> *get_space_owner() { _FORCE_INLINE_ RID_PtrOwner<SpaceBullet> *get_space_owner() {
return &space_owner; return &space_owner;
@ -111,7 +111,7 @@ public:
/// Not supported /// Not supported
virtual real_t space_get_param(RID p_space, SpaceParameter p_param) const; virtual real_t space_get_param(RID p_space, SpaceParameter p_param) const;
virtual PhysicsDirectSpaceState *space_get_direct_state(RID p_space); virtual PhysicsDirectSpaceState3D *space_get_direct_state(RID p_space);
virtual void space_set_debug_contacts(RID p_space, int p_max_contacts); virtual void space_set_debug_contacts(RID p_space, int p_max_contacts);
virtual Vector<Vector3> space_get_contacts(RID p_space) const; virtual Vector<Vector3> space_get_contacts(RID p_space) const;
@ -252,7 +252,7 @@ public:
virtual bool body_is_ray_pickable(RID p_body) const; virtual bool body_is_ray_pickable(RID p_body) const;
// this function only works on physics process, errors and returns null otherwise // this function only works on physics process, errors and returns null otherwise
virtual PhysicsDirectBodyState *body_get_direct_state(RID p_body); virtual PhysicsDirectBodyState3D *body_get_direct_state(RID p_body);
virtual bool body_test_motion(RID p_body, const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia, MotionResult *r_result = NULL, bool p_exclude_raycast_shapes = true); virtual bool body_test_motion(RID p_body, const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia, MotionResult *r_result = NULL, bool p_exclude_raycast_shapes = true);
virtual int body_test_ray_separation(RID p_body, const Transform &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, SeparationResult *r_results, int p_result_max, float p_margin = 0.001); virtual int body_test_ray_separation(RID p_body, const Transform &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, SeparationResult *r_results, int p_result_max, float p_margin = 0.001);
@ -261,7 +261,7 @@ public:
virtual RID soft_body_create(bool p_init_sleeping = false); virtual RID soft_body_create(bool p_init_sleeping = false);
virtual void soft_body_update_visual_server(RID p_body, class SoftBodyVisualServerHandler *p_visual_server_handler); virtual void soft_body_update_rendering_server(RID p_body, class SoftBodyRenderingServerHandler *p_rendering_server_handler);
virtual void soft_body_set_space(RID p_body, RID p_space); virtual void soft_body_set_space(RID p_body, RID p_space);
virtual RID soft_body_get_space(RID p_body) const; virtual RID soft_body_get_space(RID p_body) const;
@ -387,7 +387,7 @@ public:
} }
static bool singleton_isActive() { static bool singleton_isActive() {
return static_cast<BulletPhysicsServer *>(get_singleton())->active; return static_cast<BulletPhysicsServer3D *>(get_singleton())->active;
} }
bool isActive() { bool isActive() {

View File

@ -60,7 +60,7 @@ void CollisionObjectBullet::ShapeWrapper::set_transform(const btTransform &p_tra
} }
btTransform CollisionObjectBullet::ShapeWrapper::get_adjusted_transform() const { btTransform CollisionObjectBullet::ShapeWrapper::get_adjusted_transform() const {
if (shape->get_type() == PhysicsServer::SHAPE_HEIGHTMAP) { if (shape->get_type() == PhysicsServer3D::SHAPE_HEIGHTMAP) {
const HeightMapShapeBullet *hm_shape = (const HeightMapShapeBullet *)shape; // should be safe to cast now const HeightMapShapeBullet *hm_shape = (const HeightMapShapeBullet *)shape; // should be safe to cast now
btTransform adjusted_transform; btTransform adjusted_transform;

View File

@ -64,43 +64,43 @@ ConeTwistJointBullet::ConeTwistJointBullet(RigidBodyBullet *rbA, RigidBodyBullet
setup(coneConstraint); setup(coneConstraint);
} }
void ConeTwistJointBullet::set_param(PhysicsServer::ConeTwistJointParam p_param, real_t p_value) { void ConeTwistJointBullet::set_param(PhysicsServer3D::ConeTwistJointParam p_param, real_t p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::CONE_TWIST_JOINT_SWING_SPAN: case PhysicsServer3D::CONE_TWIST_JOINT_SWING_SPAN:
coneConstraint->setLimit(5, p_value); coneConstraint->setLimit(5, p_value);
coneConstraint->setLimit(4, p_value); coneConstraint->setLimit(4, p_value);
break; break;
case PhysicsServer::CONE_TWIST_JOINT_TWIST_SPAN: case PhysicsServer3D::CONE_TWIST_JOINT_TWIST_SPAN:
coneConstraint->setLimit(3, p_value); coneConstraint->setLimit(3, p_value);
break; break;
case PhysicsServer::CONE_TWIST_JOINT_BIAS: case PhysicsServer3D::CONE_TWIST_JOINT_BIAS:
coneConstraint->setLimit(coneConstraint->getSwingSpan1(), coneConstraint->getSwingSpan2(), coneConstraint->getTwistSpan(), coneConstraint->getLimitSoftness(), p_value, coneConstraint->getRelaxationFactor()); coneConstraint->setLimit(coneConstraint->getSwingSpan1(), coneConstraint->getSwingSpan2(), coneConstraint->getTwistSpan(), coneConstraint->getLimitSoftness(), p_value, coneConstraint->getRelaxationFactor());
break; break;
case PhysicsServer::CONE_TWIST_JOINT_SOFTNESS: case PhysicsServer3D::CONE_TWIST_JOINT_SOFTNESS:
coneConstraint->setLimit(coneConstraint->getSwingSpan1(), coneConstraint->getSwingSpan2(), coneConstraint->getTwistSpan(), p_value, coneConstraint->getBiasFactor(), coneConstraint->getRelaxationFactor()); coneConstraint->setLimit(coneConstraint->getSwingSpan1(), coneConstraint->getSwingSpan2(), coneConstraint->getTwistSpan(), p_value, coneConstraint->getBiasFactor(), coneConstraint->getRelaxationFactor());
break; break;
case PhysicsServer::CONE_TWIST_JOINT_RELAXATION: case PhysicsServer3D::CONE_TWIST_JOINT_RELAXATION:
coneConstraint->setLimit(coneConstraint->getSwingSpan1(), coneConstraint->getSwingSpan2(), coneConstraint->getTwistSpan(), coneConstraint->getLimitSoftness(), coneConstraint->getBiasFactor(), p_value); coneConstraint->setLimit(coneConstraint->getSwingSpan1(), coneConstraint->getSwingSpan2(), coneConstraint->getTwistSpan(), coneConstraint->getLimitSoftness(), coneConstraint->getBiasFactor(), p_value);
break; break;
case PhysicsServer::CONE_TWIST_MAX: case PhysicsServer3D::CONE_TWIST_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
break; break;
} }
} }
real_t ConeTwistJointBullet::get_param(PhysicsServer::ConeTwistJointParam p_param) const { real_t ConeTwistJointBullet::get_param(PhysicsServer3D::ConeTwistJointParam p_param) const {
switch (p_param) { switch (p_param) {
case PhysicsServer::CONE_TWIST_JOINT_SWING_SPAN: case PhysicsServer3D::CONE_TWIST_JOINT_SWING_SPAN:
return coneConstraint->getSwingSpan1(); return coneConstraint->getSwingSpan1();
case PhysicsServer::CONE_TWIST_JOINT_TWIST_SPAN: case PhysicsServer3D::CONE_TWIST_JOINT_TWIST_SPAN:
return coneConstraint->getTwistSpan(); return coneConstraint->getTwistSpan();
case PhysicsServer::CONE_TWIST_JOINT_BIAS: case PhysicsServer3D::CONE_TWIST_JOINT_BIAS:
return coneConstraint->getBiasFactor(); return coneConstraint->getBiasFactor();
case PhysicsServer::CONE_TWIST_JOINT_SOFTNESS: case PhysicsServer3D::CONE_TWIST_JOINT_SOFTNESS:
return coneConstraint->getLimitSoftness(); return coneConstraint->getLimitSoftness();
case PhysicsServer::CONE_TWIST_JOINT_RELAXATION: case PhysicsServer3D::CONE_TWIST_JOINT_RELAXATION:
return coneConstraint->getRelaxationFactor(); return coneConstraint->getRelaxationFactor();
case PhysicsServer::CONE_TWIST_MAX: case PhysicsServer3D::CONE_TWIST_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
return 0; return 0;
} }

View File

@ -45,9 +45,9 @@ class ConeTwistJointBullet : public JointBullet {
public: public:
ConeTwistJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &rbAFrame, const Transform &rbBFrame); ConeTwistJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &rbAFrame, const Transform &rbBFrame);
virtual PhysicsServer::JointType get_type() const { return PhysicsServer::JOINT_CONE_TWIST; } virtual PhysicsServer3D::JointType get_type() const { return PhysicsServer3D::JOINT_CONE_TWIST; }
void set_param(PhysicsServer::ConeTwistJointParam p_param, real_t p_value); void set_param(PhysicsServer3D::ConeTwistJointParam p_param, real_t p_value);
real_t get_param(PhysicsServer::ConeTwistJointParam p_param) const; real_t get_param(PhysicsServer3D::ConeTwistJointParam p_param) const;
}; };
#endif #endif

View File

@ -118,62 +118,62 @@ void Generic6DOFJointBullet::set_angular_upper_limit(const Vector3 &angularUpper
sixDOFConstraint->setAngularUpperLimit(btVec); sixDOFConstraint->setAngularUpperLimit(btVec);
} }
void Generic6DOFJointBullet::set_param(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisParam p_param, real_t p_value) { void Generic6DOFJointBullet::set_param(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisParam p_param, real_t p_value) {
ERR_FAIL_INDEX(p_axis, 3); ERR_FAIL_INDEX(p_axis, 3);
switch (p_param) { switch (p_param) {
case PhysicsServer::G6DOF_JOINT_LINEAR_LOWER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_LOWER_LIMIT:
limits_lower[0][p_axis] = p_value; limits_lower[0][p_axis] = p_value;
set_flag(p_axis, PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT, flags[p_axis][PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT]); // Reload bullet parameter set_flag(p_axis, PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT, flags[p_axis][PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT]); // Reload bullet parameter
break; break;
case PhysicsServer::G6DOF_JOINT_LINEAR_UPPER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_UPPER_LIMIT:
limits_upper[0][p_axis] = p_value; limits_upper[0][p_axis] = p_value;
set_flag(p_axis, PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT, flags[p_axis][PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT]); // Reload bullet parameter set_flag(p_axis, PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT, flags[p_axis][PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT]); // Reload bullet parameter
break; break;
case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY: case PhysicsServer3D::G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY:
sixDOFConstraint->getTranslationalLimitMotor()->m_targetVelocity.m_floats[p_axis] = p_value; sixDOFConstraint->getTranslationalLimitMotor()->m_targetVelocity.m_floats[p_axis] = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT:
sixDOFConstraint->getTranslationalLimitMotor()->m_maxMotorForce.m_floats[p_axis] = p_value; sixDOFConstraint->getTranslationalLimitMotor()->m_maxMotorForce.m_floats[p_axis] = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_LINEAR_SPRING_DAMPING: case PhysicsServer3D::G6DOF_JOINT_LINEAR_SPRING_DAMPING:
sixDOFConstraint->getTranslationalLimitMotor()->m_springDamping.m_floats[p_axis] = p_value; sixDOFConstraint->getTranslationalLimitMotor()->m_springDamping.m_floats[p_axis] = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_LINEAR_SPRING_STIFFNESS: case PhysicsServer3D::G6DOF_JOINT_LINEAR_SPRING_STIFFNESS:
sixDOFConstraint->getTranslationalLimitMotor()->m_springStiffness.m_floats[p_axis] = p_value; sixDOFConstraint->getTranslationalLimitMotor()->m_springStiffness.m_floats[p_axis] = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT:
sixDOFConstraint->getTranslationalLimitMotor()->m_equilibriumPoint.m_floats[p_axis] = p_value; sixDOFConstraint->getTranslationalLimitMotor()->m_equilibriumPoint.m_floats[p_axis] = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_LOWER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_LOWER_LIMIT:
limits_lower[1][p_axis] = p_value; limits_lower[1][p_axis] = p_value;
set_flag(p_axis, PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT, flags[p_axis][PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT]); // Reload bullet parameter set_flag(p_axis, PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT, flags[p_axis][PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT]); // Reload bullet parameter
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_UPPER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_UPPER_LIMIT:
limits_upper[1][p_axis] = p_value; limits_upper[1][p_axis] = p_value;
set_flag(p_axis, PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT, flags[p_axis][PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT]); // Reload bullet parameter set_flag(p_axis, PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT, flags[p_axis][PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT]); // Reload bullet parameter
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_RESTITUTION: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_RESTITUTION:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_bounce = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_bounce = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_ERP: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_ERP:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_stopERP = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_stopERP = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_targetVelocity = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_targetVelocity = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_maxMotorForce = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_maxMotorForce = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springStiffness = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springStiffness = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_SPRING_DAMPING: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_SPRING_DAMPING:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springDamping = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springDamping = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_equilibriumPoint = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_equilibriumPoint = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_MAX: case PhysicsServer3D::G6DOF_JOINT_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
break; break;
default: default:
@ -182,42 +182,42 @@ void Generic6DOFJointBullet::set_param(Vector3::Axis p_axis, PhysicsServer::G6DO
} }
} }
real_t Generic6DOFJointBullet::get_param(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisParam p_param) const { real_t Generic6DOFJointBullet::get_param(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisParam p_param) const {
ERR_FAIL_INDEX_V(p_axis, 3, 0.); ERR_FAIL_INDEX_V(p_axis, 3, 0.);
switch (p_param) { switch (p_param) {
case PhysicsServer::G6DOF_JOINT_LINEAR_LOWER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_LOWER_LIMIT:
return limits_lower[0][p_axis]; return limits_lower[0][p_axis];
case PhysicsServer::G6DOF_JOINT_LINEAR_UPPER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_UPPER_LIMIT:
return limits_upper[0][p_axis]; return limits_upper[0][p_axis];
case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY: case PhysicsServer3D::G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY:
return sixDOFConstraint->getTranslationalLimitMotor()->m_targetVelocity.m_floats[p_axis]; return sixDOFConstraint->getTranslationalLimitMotor()->m_targetVelocity.m_floats[p_axis];
case PhysicsServer::G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT:
return sixDOFConstraint->getTranslationalLimitMotor()->m_maxMotorForce.m_floats[p_axis]; return sixDOFConstraint->getTranslationalLimitMotor()->m_maxMotorForce.m_floats[p_axis];
case PhysicsServer::G6DOF_JOINT_LINEAR_SPRING_DAMPING: case PhysicsServer3D::G6DOF_JOINT_LINEAR_SPRING_DAMPING:
return sixDOFConstraint->getTranslationalLimitMotor()->m_springDamping.m_floats[p_axis]; return sixDOFConstraint->getTranslationalLimitMotor()->m_springDamping.m_floats[p_axis];
case PhysicsServer::G6DOF_JOINT_LINEAR_SPRING_STIFFNESS: case PhysicsServer3D::G6DOF_JOINT_LINEAR_SPRING_STIFFNESS:
return sixDOFConstraint->getTranslationalLimitMotor()->m_springStiffness.m_floats[p_axis]; return sixDOFConstraint->getTranslationalLimitMotor()->m_springStiffness.m_floats[p_axis];
case PhysicsServer::G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT: case PhysicsServer3D::G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT:
return sixDOFConstraint->getTranslationalLimitMotor()->m_equilibriumPoint.m_floats[p_axis]; return sixDOFConstraint->getTranslationalLimitMotor()->m_equilibriumPoint.m_floats[p_axis];
case PhysicsServer::G6DOF_JOINT_ANGULAR_LOWER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_LOWER_LIMIT:
return limits_lower[1][p_axis]; return limits_lower[1][p_axis];
case PhysicsServer::G6DOF_JOINT_ANGULAR_UPPER_LIMIT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_UPPER_LIMIT:
return limits_upper[1][p_axis]; return limits_upper[1][p_axis];
case PhysicsServer::G6DOF_JOINT_ANGULAR_RESTITUTION: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_RESTITUTION:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_bounce; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_bounce;
case PhysicsServer::G6DOF_JOINT_ANGULAR_ERP: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_ERP:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_stopERP; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_stopERP;
case PhysicsServer::G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_targetVelocity; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_targetVelocity;
case PhysicsServer::G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_maxMotorForce; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_maxMotorForce;
case PhysicsServer::G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springStiffness; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springStiffness;
case PhysicsServer::G6DOF_JOINT_ANGULAR_SPRING_DAMPING: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_SPRING_DAMPING:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springDamping; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_springDamping;
case PhysicsServer::G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT: case PhysicsServer3D::G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT:
return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_equilibriumPoint; return sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_equilibriumPoint;
case PhysicsServer::G6DOF_JOINT_MAX: case PhysicsServer3D::G6DOF_JOINT_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
return 0; return 0;
default: default:
@ -226,45 +226,45 @@ real_t Generic6DOFJointBullet::get_param(Vector3::Axis p_axis, PhysicsServer::G6
} }
} }
void Generic6DOFJointBullet::set_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag, bool p_value) { void Generic6DOFJointBullet::set_flag(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisFlag p_flag, bool p_value) {
ERR_FAIL_INDEX(p_axis, 3); ERR_FAIL_INDEX(p_axis, 3);
flags[p_axis][p_flag] = p_value; flags[p_axis][p_flag] = p_value;
switch (p_flag) { switch (p_flag) {
case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT: case PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT:
if (flags[p_axis][p_flag]) { if (flags[p_axis][p_flag]) {
sixDOFConstraint->setLimit(p_axis, limits_lower[0][p_axis], limits_upper[0][p_axis]); sixDOFConstraint->setLimit(p_axis, limits_lower[0][p_axis], limits_upper[0][p_axis]);
} else { } else {
sixDOFConstraint->setLimit(p_axis, 0, -1); // Free sixDOFConstraint->setLimit(p_axis, 0, -1); // Free
} }
break; break;
case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT: case PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT:
if (flags[p_axis][p_flag]) { if (flags[p_axis][p_flag]) {
sixDOFConstraint->setLimit(p_axis + 3, limits_lower[1][p_axis], limits_upper[1][p_axis]); sixDOFConstraint->setLimit(p_axis + 3, limits_lower[1][p_axis], limits_upper[1][p_axis]);
} else { } else {
sixDOFConstraint->setLimit(p_axis + 3, 0, -1); // Free sixDOFConstraint->setLimit(p_axis + 3, 0, -1); // Free
} }
break; break;
case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_SPRING: case PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_ANGULAR_SPRING:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_enableSpring = p_value; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_enableSpring = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_SPRING: case PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_SPRING:
sixDOFConstraint->getTranslationalLimitMotor()->m_enableSpring[p_axis] = p_value; sixDOFConstraint->getTranslationalLimitMotor()->m_enableSpring[p_axis] = p_value;
break; break;
case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_MOTOR: case PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_MOTOR:
sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_enableMotor = flags[p_axis][p_flag]; sixDOFConstraint->getRotationalLimitMotor(p_axis)->m_enableMotor = flags[p_axis][p_flag];
break; break;
case PhysicsServer::G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR: case PhysicsServer3D::G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR:
sixDOFConstraint->getTranslationalLimitMotor()->m_enableMotor[p_axis] = flags[p_axis][p_flag]; sixDOFConstraint->getTranslationalLimitMotor()->m_enableMotor[p_axis] = flags[p_axis][p_flag];
break; break;
case PhysicsServer::G6DOF_JOINT_FLAG_MAX: case PhysicsServer3D::G6DOF_JOINT_FLAG_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
break; break;
} }
} }
bool Generic6DOFJointBullet::get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag) const { bool Generic6DOFJointBullet::get_flag(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisFlag p_flag) const {
ERR_FAIL_INDEX_V(p_axis, 3, false); ERR_FAIL_INDEX_V(p_axis, 3, false);
return flags[p_axis][p_flag]; return flags[p_axis][p_flag];
} }

View File

@ -45,12 +45,12 @@ class Generic6DOFJointBullet : public JointBullet {
// First is linear second is angular // First is linear second is angular
Vector3 limits_lower[2]; Vector3 limits_lower[2];
Vector3 limits_upper[2]; Vector3 limits_upper[2];
bool flags[3][PhysicsServer::G6DOF_JOINT_FLAG_MAX]; bool flags[3][PhysicsServer3D::G6DOF_JOINT_FLAG_MAX];
public: public:
Generic6DOFJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &frameInA, const Transform &frameInB); Generic6DOFJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &frameInA, const Transform &frameInB);
virtual PhysicsServer::JointType get_type() const { return PhysicsServer::JOINT_6DOF; } virtual PhysicsServer3D::JointType get_type() const { return PhysicsServer3D::JOINT_6DOF; }
Transform getFrameOffsetA() const; Transform getFrameOffsetA() const;
Transform getFrameOffsetB() const; Transform getFrameOffsetB() const;
@ -63,11 +63,11 @@ public:
void set_angular_lower_limit(const Vector3 &angularLower); void set_angular_lower_limit(const Vector3 &angularLower);
void set_angular_upper_limit(const Vector3 &angularUpper); void set_angular_upper_limit(const Vector3 &angularUpper);
void set_param(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisParam p_param, real_t p_value); void set_param(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisParam p_param, real_t p_value);
real_t get_param(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisParam p_param) const; real_t get_param(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisParam p_param) const;
void set_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag, bool p_value); void set_flag(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisFlag p_flag, bool p_value);
bool get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag) const; bool get_flag(Vector3::Axis p_axis, PhysicsServer3D::G6DOFJointAxisFlag p_flag) const;
void set_precision(int p_precision); void set_precision(int p_precision);
int get_precision() const; int get_precision() const;

View File

@ -107,7 +107,7 @@ btScalar GodotAllConvexResultCallback::addSingleResult(btCollisionWorld::LocalCo
CollisionObjectBullet *gObj = static_cast<CollisionObjectBullet *>(convexResult.m_hitCollisionObject->getUserPointer()); CollisionObjectBullet *gObj = static_cast<CollisionObjectBullet *>(convexResult.m_hitCollisionObject->getUserPointer());
PhysicsDirectSpaceState::ShapeResult &result = m_results[count]; PhysicsDirectSpaceState3D::ShapeResult &result = m_results[count];
result.shape = convexResult.m_localShapeInfo->m_triangleIndex; // "m_triangleIndex" Is a odd name but contains the compound shape ID result.shape = convexResult.m_localShapeInfo->m_triangleIndex; // "m_triangleIndex" Is a odd name but contains the compound shape ID
result.rid = gObj->get_self(); result.rid = gObj->get_self();
@ -207,7 +207,7 @@ btScalar GodotAllContactResultCallback::addSingleResult(btManifoldPoint &cp, con
if (cp.getDistance() <= 0) { if (cp.getDistance() <= 0) {
PhysicsDirectSpaceState::ShapeResult &result = m_results[m_count]; PhysicsDirectSpaceState3D::ShapeResult &result = m_results[m_count];
// Penetrated // Penetrated
CollisionObjectBullet *colObj; CollisionObjectBullet *colObj;

View File

@ -31,7 +31,7 @@
#ifndef GODOT_RESULT_CALLBACKS_H #ifndef GODOT_RESULT_CALLBACKS_H
#define GODOT_RESULT_CALLBACKS_H #define GODOT_RESULT_CALLBACKS_H
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h> #include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h>
#include <btBulletDynamicsCommon.h> #include <btBulletDynamicsCommon.h>
@ -85,12 +85,12 @@ public:
// store all colliding object // store all colliding object
struct GodotAllConvexResultCallback : public btCollisionWorld::ConvexResultCallback { struct GodotAllConvexResultCallback : public btCollisionWorld::ConvexResultCallback {
public: public:
PhysicsDirectSpaceState::ShapeResult *m_results; PhysicsDirectSpaceState3D::ShapeResult *m_results;
int m_resultMax; int m_resultMax;
const Set<RID> *m_exclude; const Set<RID> *m_exclude;
int count; int count;
GodotAllConvexResultCallback(PhysicsDirectSpaceState::ShapeResult *p_results, int p_resultMax, const Set<RID> *p_exclude) : GodotAllConvexResultCallback(PhysicsDirectSpaceState3D::ShapeResult *p_results, int p_resultMax, const Set<RID> *p_exclude) :
m_results(p_results), m_results(p_results),
m_resultMax(p_resultMax), m_resultMax(p_resultMax),
m_exclude(p_exclude), m_exclude(p_exclude),
@ -137,7 +137,7 @@ public:
struct GodotAllContactResultCallback : public btCollisionWorld::ContactResultCallback { struct GodotAllContactResultCallback : public btCollisionWorld::ContactResultCallback {
public: public:
const btCollisionObject *m_self_object; const btCollisionObject *m_self_object;
PhysicsDirectSpaceState::ShapeResult *m_results; PhysicsDirectSpaceState3D::ShapeResult *m_results;
int m_resultMax; int m_resultMax;
const Set<RID> *m_exclude; const Set<RID> *m_exclude;
int m_count; int m_count;
@ -145,7 +145,7 @@ public:
bool collide_with_bodies; bool collide_with_bodies;
bool collide_with_areas; bool collide_with_areas;
GodotAllContactResultCallback(btCollisionObject *p_self_object, PhysicsDirectSpaceState::ShapeResult *p_results, int p_resultMax, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) : GodotAllContactResultCallback(btCollisionObject *p_self_object, PhysicsDirectSpaceState3D::ShapeResult *p_results, int p_resultMax, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
m_self_object(p_self_object), m_self_object(p_self_object),
m_results(p_results), m_results(p_results),
m_resultMax(p_resultMax), m_resultMax(p_resultMax),
@ -188,7 +188,7 @@ public:
struct GodotRestInfoContactResultCallback : public btCollisionWorld::ContactResultCallback { struct GodotRestInfoContactResultCallback : public btCollisionWorld::ContactResultCallback {
public: public:
const btCollisionObject *m_self_object; const btCollisionObject *m_self_object;
PhysicsDirectSpaceState::ShapeRestInfo *m_result; PhysicsDirectSpaceState3D::ShapeRestInfo *m_result;
const Set<RID> *m_exclude; const Set<RID> *m_exclude;
bool m_collided; bool m_collided;
real_t m_min_distance; real_t m_min_distance;
@ -197,7 +197,7 @@ public:
bool collide_with_bodies; bool collide_with_bodies;
bool collide_with_areas; bool collide_with_areas;
GodotRestInfoContactResultCallback(btCollisionObject *p_self_object, PhysicsDirectSpaceState::ShapeRestInfo *p_result, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) : GodotRestInfoContactResultCallback(btCollisionObject *p_self_object, PhysicsDirectSpaceState3D::ShapeRestInfo *p_result, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :
m_self_object(p_self_object), m_self_object(p_self_object),
m_result(p_result), m_result(p_result),
m_exclude(p_exclude), m_exclude(p_exclude),

View File

@ -93,58 +93,58 @@ real_t HingeJointBullet::get_hinge_angle() {
return hingeConstraint->getHingeAngle(); return hingeConstraint->getHingeAngle();
} }
void HingeJointBullet::set_param(PhysicsServer::HingeJointParam p_param, real_t p_value) { void HingeJointBullet::set_param(PhysicsServer3D::HingeJointParam p_param, real_t p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::HINGE_JOINT_BIAS: case PhysicsServer3D::HINGE_JOINT_BIAS:
WARN_DEPRECATED_MSG("The HingeJoint parameter \"bias\" is deprecated."); WARN_DEPRECATED_MSG("The HingeJoint parameter \"bias\" is deprecated.");
break; break;
case PhysicsServer::HINGE_JOINT_LIMIT_UPPER: case PhysicsServer3D::HINGE_JOINT_LIMIT_UPPER:
hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), p_value, hingeConstraint->getLimitSoftness(), hingeConstraint->getLimitBiasFactor(), hingeConstraint->getLimitRelaxationFactor()); hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), p_value, hingeConstraint->getLimitSoftness(), hingeConstraint->getLimitBiasFactor(), hingeConstraint->getLimitRelaxationFactor());
break; break;
case PhysicsServer::HINGE_JOINT_LIMIT_LOWER: case PhysicsServer3D::HINGE_JOINT_LIMIT_LOWER:
hingeConstraint->setLimit(p_value, hingeConstraint->getUpperLimit(), hingeConstraint->getLimitSoftness(), hingeConstraint->getLimitBiasFactor(), hingeConstraint->getLimitRelaxationFactor()); hingeConstraint->setLimit(p_value, hingeConstraint->getUpperLimit(), hingeConstraint->getLimitSoftness(), hingeConstraint->getLimitBiasFactor(), hingeConstraint->getLimitRelaxationFactor());
break; break;
case PhysicsServer::HINGE_JOINT_LIMIT_BIAS: case PhysicsServer3D::HINGE_JOINT_LIMIT_BIAS:
hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), hingeConstraint->getUpperLimit(), hingeConstraint->getLimitSoftness(), p_value, hingeConstraint->getLimitRelaxationFactor()); hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), hingeConstraint->getUpperLimit(), hingeConstraint->getLimitSoftness(), p_value, hingeConstraint->getLimitRelaxationFactor());
break; break;
case PhysicsServer::HINGE_JOINT_LIMIT_SOFTNESS: case PhysicsServer3D::HINGE_JOINT_LIMIT_SOFTNESS:
hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), hingeConstraint->getUpperLimit(), p_value, hingeConstraint->getLimitBiasFactor(), hingeConstraint->getLimitRelaxationFactor()); hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), hingeConstraint->getUpperLimit(), p_value, hingeConstraint->getLimitBiasFactor(), hingeConstraint->getLimitRelaxationFactor());
break; break;
case PhysicsServer::HINGE_JOINT_LIMIT_RELAXATION: case PhysicsServer3D::HINGE_JOINT_LIMIT_RELAXATION:
hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), hingeConstraint->getUpperLimit(), hingeConstraint->getLimitSoftness(), hingeConstraint->getLimitBiasFactor(), p_value); hingeConstraint->setLimit(hingeConstraint->getLowerLimit(), hingeConstraint->getUpperLimit(), hingeConstraint->getLimitSoftness(), hingeConstraint->getLimitBiasFactor(), p_value);
break; break;
case PhysicsServer::HINGE_JOINT_MOTOR_TARGET_VELOCITY: case PhysicsServer3D::HINGE_JOINT_MOTOR_TARGET_VELOCITY:
hingeConstraint->setMotorTargetVelocity(p_value); hingeConstraint->setMotorTargetVelocity(p_value);
break; break;
case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE: case PhysicsServer3D::HINGE_JOINT_MOTOR_MAX_IMPULSE:
hingeConstraint->setMaxMotorImpulse(p_value); hingeConstraint->setMaxMotorImpulse(p_value);
break; break;
case PhysicsServer::HINGE_JOINT_MAX: case PhysicsServer3D::HINGE_JOINT_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
break; break;
} }
} }
real_t HingeJointBullet::get_param(PhysicsServer::HingeJointParam p_param) const { real_t HingeJointBullet::get_param(PhysicsServer3D::HingeJointParam p_param) const {
switch (p_param) { switch (p_param) {
case PhysicsServer::HINGE_JOINT_BIAS: case PhysicsServer3D::HINGE_JOINT_BIAS:
WARN_DEPRECATED_MSG("The HingeJoint parameter \"bias\" is deprecated."); WARN_DEPRECATED_MSG("The HingeJoint parameter \"bias\" is deprecated.");
return 0; return 0;
case PhysicsServer::HINGE_JOINT_LIMIT_UPPER: case PhysicsServer3D::HINGE_JOINT_LIMIT_UPPER:
return hingeConstraint->getUpperLimit(); return hingeConstraint->getUpperLimit();
case PhysicsServer::HINGE_JOINT_LIMIT_LOWER: case PhysicsServer3D::HINGE_JOINT_LIMIT_LOWER:
return hingeConstraint->getLowerLimit(); return hingeConstraint->getLowerLimit();
case PhysicsServer::HINGE_JOINT_LIMIT_BIAS: case PhysicsServer3D::HINGE_JOINT_LIMIT_BIAS:
return hingeConstraint->getLimitBiasFactor(); return hingeConstraint->getLimitBiasFactor();
case PhysicsServer::HINGE_JOINT_LIMIT_SOFTNESS: case PhysicsServer3D::HINGE_JOINT_LIMIT_SOFTNESS:
return hingeConstraint->getLimitSoftness(); return hingeConstraint->getLimitSoftness();
case PhysicsServer::HINGE_JOINT_LIMIT_RELAXATION: case PhysicsServer3D::HINGE_JOINT_LIMIT_RELAXATION:
return hingeConstraint->getLimitRelaxationFactor(); return hingeConstraint->getLimitRelaxationFactor();
case PhysicsServer::HINGE_JOINT_MOTOR_TARGET_VELOCITY: case PhysicsServer3D::HINGE_JOINT_MOTOR_TARGET_VELOCITY:
return hingeConstraint->getMotorTargetVelocity(); return hingeConstraint->getMotorTargetVelocity();
case PhysicsServer::HINGE_JOINT_MOTOR_MAX_IMPULSE: case PhysicsServer3D::HINGE_JOINT_MOTOR_MAX_IMPULSE:
return hingeConstraint->getMaxMotorImpulse(); return hingeConstraint->getMaxMotorImpulse();
case PhysicsServer::HINGE_JOINT_MAX: case PhysicsServer3D::HINGE_JOINT_MAX:
// Internal size value, nothing to do. // Internal size value, nothing to do.
return 0; return 0;
} }
@ -152,25 +152,25 @@ real_t HingeJointBullet::get_param(PhysicsServer::HingeJointParam p_param) const
return 0; return 0;
} }
void HingeJointBullet::set_flag(PhysicsServer::HingeJointFlag p_flag, bool p_value) { void HingeJointBullet::set_flag(PhysicsServer3D::HingeJointFlag p_flag, bool p_value) {
switch (p_flag) { switch (p_flag) {
case PhysicsServer::HINGE_JOINT_FLAG_USE_LIMIT: case PhysicsServer3D::HINGE_JOINT_FLAG_USE_LIMIT:
if (!p_value) { if (!p_value) {
hingeConstraint->setLimit(-Math_PI, Math_PI); hingeConstraint->setLimit(-Math_PI, Math_PI);
} }
break; break;
case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR: case PhysicsServer3D::HINGE_JOINT_FLAG_ENABLE_MOTOR:
hingeConstraint->enableMotor(p_value); hingeConstraint->enableMotor(p_value);
break; break;
case PhysicsServer::HINGE_JOINT_FLAG_MAX: break; // Can't happen, but silences warning case PhysicsServer3D::HINGE_JOINT_FLAG_MAX: break; // Can't happen, but silences warning
} }
} }
bool HingeJointBullet::get_flag(PhysicsServer::HingeJointFlag p_flag) const { bool HingeJointBullet::get_flag(PhysicsServer3D::HingeJointFlag p_flag) const {
switch (p_flag) { switch (p_flag) {
case PhysicsServer::HINGE_JOINT_FLAG_USE_LIMIT: case PhysicsServer3D::HINGE_JOINT_FLAG_USE_LIMIT:
return true; return true;
case PhysicsServer::HINGE_JOINT_FLAG_ENABLE_MOTOR: case PhysicsServer3D::HINGE_JOINT_FLAG_ENABLE_MOTOR:
return hingeConstraint->getEnableAngularMotor(); return hingeConstraint->getEnableAngularMotor();
default: default:
return false; return false;

View File

@ -44,14 +44,14 @@ public:
HingeJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &frameA, const Transform &frameB); HingeJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &frameA, const Transform &frameB);
HingeJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Vector3 &pivotInA, const Vector3 &pivotInB, const Vector3 &axisInA, const Vector3 &axisInB); HingeJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Vector3 &pivotInA, const Vector3 &pivotInB, const Vector3 &axisInA, const Vector3 &axisInB);
virtual PhysicsServer::JointType get_type() const { return PhysicsServer::JOINT_HINGE; } virtual PhysicsServer3D::JointType get_type() const { return PhysicsServer3D::JOINT_HINGE; }
real_t get_hinge_angle(); real_t get_hinge_angle();
void set_param(PhysicsServer::HingeJointParam p_param, real_t p_value); void set_param(PhysicsServer3D::HingeJointParam p_param, real_t p_value);
real_t get_param(PhysicsServer::HingeJointParam p_param) const; real_t get_param(PhysicsServer3D::HingeJointParam p_param) const;
void set_flag(PhysicsServer::HingeJointFlag p_flag, bool p_value); void set_flag(PhysicsServer3D::HingeJointFlag p_flag, bool p_value);
bool get_flag(PhysicsServer::HingeJointFlag p_flag) const; bool get_flag(PhysicsServer3D::HingeJointFlag p_flag) const;
}; };
#endif #endif

View File

@ -32,7 +32,7 @@
#define JOINT_BULLET_H #define JOINT_BULLET_H
#include "constraint_bullet.h" #include "constraint_bullet.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
/** /**
@author AndreaCatania @author AndreaCatania
@ -47,6 +47,6 @@ public:
JointBullet(); JointBullet();
virtual ~JointBullet(); virtual ~JointBullet();
virtual PhysicsServer::JointType get_type() const = 0; virtual PhysicsServer3D::JointType get_type() const = 0;
}; };
#endif #endif

View File

@ -62,27 +62,27 @@ PinJointBullet::PinJointBullet(RigidBodyBullet *p_body_a, const Vector3 &p_pos_a
PinJointBullet::~PinJointBullet() {} PinJointBullet::~PinJointBullet() {}
void PinJointBullet::set_param(PhysicsServer::PinJointParam p_param, real_t p_value) { void PinJointBullet::set_param(PhysicsServer3D::PinJointParam p_param, real_t p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::PIN_JOINT_BIAS: case PhysicsServer3D::PIN_JOINT_BIAS:
p2pConstraint->m_setting.m_tau = p_value; p2pConstraint->m_setting.m_tau = p_value;
break; break;
case PhysicsServer::PIN_JOINT_DAMPING: case PhysicsServer3D::PIN_JOINT_DAMPING:
p2pConstraint->m_setting.m_damping = p_value; p2pConstraint->m_setting.m_damping = p_value;
break; break;
case PhysicsServer::PIN_JOINT_IMPULSE_CLAMP: case PhysicsServer3D::PIN_JOINT_IMPULSE_CLAMP:
p2pConstraint->m_setting.m_impulseClamp = p_value; p2pConstraint->m_setting.m_impulseClamp = p_value;
break; break;
} }
} }
real_t PinJointBullet::get_param(PhysicsServer::PinJointParam p_param) const { real_t PinJointBullet::get_param(PhysicsServer3D::PinJointParam p_param) const {
switch (p_param) { switch (p_param) {
case PhysicsServer::PIN_JOINT_BIAS: case PhysicsServer3D::PIN_JOINT_BIAS:
return p2pConstraint->m_setting.m_tau; return p2pConstraint->m_setting.m_tau;
case PhysicsServer::PIN_JOINT_DAMPING: case PhysicsServer3D::PIN_JOINT_DAMPING:
return p2pConstraint->m_setting.m_damping; return p2pConstraint->m_setting.m_damping;
case PhysicsServer::PIN_JOINT_IMPULSE_CLAMP: case PhysicsServer3D::PIN_JOINT_IMPULSE_CLAMP:
return p2pConstraint->m_setting.m_impulseClamp; return p2pConstraint->m_setting.m_impulseClamp;
} }
// Compiler doesn't seem to notice that all code paths are fulfilled... // Compiler doesn't seem to notice that all code paths are fulfilled...

View File

@ -46,10 +46,10 @@ public:
PinJointBullet(RigidBodyBullet *p_body_a, const Vector3 &p_pos_a, RigidBodyBullet *p_body_b, const Vector3 &p_pos_b); PinJointBullet(RigidBodyBullet *p_body_a, const Vector3 &p_pos_a, RigidBodyBullet *p_body_b, const Vector3 &p_pos_b);
~PinJointBullet(); ~PinJointBullet();
virtual PhysicsServer::JointType get_type() const { return PhysicsServer::JOINT_PIN; } virtual PhysicsServer3D::JointType get_type() const { return PhysicsServer3D::JOINT_PIN; }
void set_param(PhysicsServer::PinJointParam p_param, real_t p_value); void set_param(PhysicsServer3D::PinJointParam p_param, real_t p_value);
real_t get_param(PhysicsServer::PinJointParam p_param) const; real_t get_param(PhysicsServer3D::PinJointParam p_param) const;
void setPivotInA(const Vector3 &p_pos); void setPivotInA(const Vector3 &p_pos);
void setPivotInB(const Vector3 &p_pos); void setPivotInB(const Vector3 &p_pos);

View File

@ -39,15 +39,15 @@
*/ */
#ifndef _3D_DISABLED #ifndef _3D_DISABLED
PhysicsServer *_createBulletPhysicsCallback() { PhysicsServer3D *_createBulletPhysicsCallback() {
return memnew(BulletPhysicsServer); return memnew(BulletPhysicsServer3D);
} }
#endif #endif
void register_bullet_types() { void register_bullet_types() {
#ifndef _3D_DISABLED #ifndef _3D_DISABLED
PhysicsServerManager::register_server("Bullet", &_createBulletPhysicsCallback); PhysicsServer3DManager::register_server("Bullet", &_createBulletPhysicsCallback);
PhysicsServerManager::set_default_server("Bullet", 1); PhysicsServer3DManager::set_default_server("Bullet", 1);
GLOBAL_DEF("physics/3d/active_soft_world", true); GLOBAL_DEF("physics/3d/active_soft_world", true);
ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/active_soft_world", PropertyInfo(Variant::BOOL, "physics/3d/active_soft_world")); ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/active_soft_world", PropertyInfo(Variant::BOOL, "physics/3d/active_soft_world"));

View File

@ -37,17 +37,17 @@
@author AndreaCatania @author AndreaCatania
*/ */
class BulletPhysicsServer; class BulletPhysicsServer3D;
class RIDBullet { class RIDBullet {
RID self; RID self;
BulletPhysicsServer *physicsServer; BulletPhysicsServer3D *physicsServer;
public: public:
_FORCE_INLINE_ void set_self(const RID &p_self) { self = p_self; } _FORCE_INLINE_ void set_self(const RID &p_self) { self = p_self; }
_FORCE_INLINE_ RID get_self() const { return self; } _FORCE_INLINE_ RID get_self() const { return self; }
_FORCE_INLINE_ void _set_physics_server(BulletPhysicsServer *p_physicsServer) { physicsServer = p_physicsServer; } _FORCE_INLINE_ void _set_physics_server(BulletPhysicsServer3D *p_physicsServer) { physicsServer = p_physicsServer; }
_FORCE_INLINE_ BulletPhysicsServer *get_physics_server() const { return physicsServer; } _FORCE_INLINE_ BulletPhysicsServer3D *get_physics_server() const { return physicsServer; }
}; };
#endif #endif

View File

@ -194,7 +194,7 @@ Vector3 BulletPhysicsDirectBodyState::get_contact_collider_velocity_at_position(
return velocityAtPoint; return velocityAtPoint;
} }
PhysicsDirectSpaceState *BulletPhysicsDirectBodyState::get_space_state() { PhysicsDirectSpaceState3D *BulletPhysicsDirectBodyState::get_space_state() {
return body->get_space()->get_direct_state(); return body->get_space()->get_direct_state();
} }
@ -231,12 +231,12 @@ void RigidBodyBullet::KinematicUtilities::copyAllOwnerShapes() {
shapes.write[i].transform = shape_wrapper->transform; shapes.write[i].transform = shape_wrapper->transform;
shapes.write[i].transform.getOrigin() *= owner_scale; shapes.write[i].transform.getOrigin() *= owner_scale;
switch (shape_wrapper->shape->get_type()) { switch (shape_wrapper->shape->get_type()) {
case PhysicsServer::SHAPE_SPHERE: case PhysicsServer3D::SHAPE_SPHERE:
case PhysicsServer::SHAPE_BOX: case PhysicsServer3D::SHAPE_BOX:
case PhysicsServer::SHAPE_CAPSULE: case PhysicsServer3D::SHAPE_CAPSULE:
case PhysicsServer::SHAPE_CYLINDER: case PhysicsServer3D::SHAPE_CYLINDER:
case PhysicsServer::SHAPE_CONVEX_POLYGON: case PhysicsServer3D::SHAPE_CONVEX_POLYGON:
case PhysicsServer::SHAPE_RAY: { case PhysicsServer3D::SHAPE_RAY: {
shapes.write[i].shape = static_cast<btConvexShape *>(shape_wrapper->shape->create_bt_shape(owner_scale * shape_wrapper->scale, safe_margin)); shapes.write[i].shape = static_cast<btConvexShape *>(shape_wrapper->shape->create_bt_shape(owner_scale * shape_wrapper->scale, safe_margin));
} break; } break;
default: default:
@ -286,7 +286,7 @@ RigidBodyBullet::RigidBodyBullet() :
reload_shapes(); reload_shapes();
setupBulletCollisionObject(btBody); setupBulletCollisionObject(btBody);
set_mode(PhysicsServer::BODY_MODE_RIGID); set_mode(PhysicsServer3D::BODY_MODE_RIGID);
reload_axis_lock(); reload_axis_lock();
areasWhereIam.resize(maxAreasWhereIam); areasWhereIam.resize(maxAreasWhereIam);
@ -487,29 +487,29 @@ void RigidBodyBullet::set_omit_forces_integration(bool p_omit) {
omit_forces_integration = p_omit; omit_forces_integration = p_omit;
} }
void RigidBodyBullet::set_param(PhysicsServer::BodyParameter p_param, real_t p_value) { void RigidBodyBullet::set_param(PhysicsServer3D::BodyParameter p_param, real_t p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::BODY_PARAM_BOUNCE: case PhysicsServer3D::BODY_PARAM_BOUNCE:
btBody->setRestitution(p_value); btBody->setRestitution(p_value);
break; break;
case PhysicsServer::BODY_PARAM_FRICTION: case PhysicsServer3D::BODY_PARAM_FRICTION:
btBody->setFriction(p_value); btBody->setFriction(p_value);
break; break;
case PhysicsServer::BODY_PARAM_MASS: { case PhysicsServer3D::BODY_PARAM_MASS: {
ERR_FAIL_COND(p_value < 0); ERR_FAIL_COND(p_value < 0);
mass = p_value; mass = p_value;
_internal_set_mass(p_value); _internal_set_mass(p_value);
break; break;
} }
case PhysicsServer::BODY_PARAM_LINEAR_DAMP: case PhysicsServer3D::BODY_PARAM_LINEAR_DAMP:
linearDamp = p_value; linearDamp = p_value;
btBody->setDamping(linearDamp, angularDamp); btBody->setDamping(linearDamp, angularDamp);
break; break;
case PhysicsServer::BODY_PARAM_ANGULAR_DAMP: case PhysicsServer3D::BODY_PARAM_ANGULAR_DAMP:
angularDamp = p_value; angularDamp = p_value;
btBody->setDamping(linearDamp, angularDamp); btBody->setDamping(linearDamp, angularDamp);
break; break;
case PhysicsServer::BODY_PARAM_GRAVITY_SCALE: case PhysicsServer3D::BODY_PARAM_GRAVITY_SCALE:
gravity_scale = p_value; gravity_scale = p_value;
/// The Bullet gravity will be is set by reload_space_override_modificator /// The Bullet gravity will be is set by reload_space_override_modificator
scratch_space_override_modificator(); scratch_space_override_modificator();
@ -519,21 +519,21 @@ void RigidBodyBullet::set_param(PhysicsServer::BodyParameter p_param, real_t p_v
} }
} }
real_t RigidBodyBullet::get_param(PhysicsServer::BodyParameter p_param) const { real_t RigidBodyBullet::get_param(PhysicsServer3D::BodyParameter p_param) const {
switch (p_param) { switch (p_param) {
case PhysicsServer::BODY_PARAM_BOUNCE: case PhysicsServer3D::BODY_PARAM_BOUNCE:
return btBody->getRestitution(); return btBody->getRestitution();
case PhysicsServer::BODY_PARAM_FRICTION: case PhysicsServer3D::BODY_PARAM_FRICTION:
return btBody->getFriction(); return btBody->getFriction();
case PhysicsServer::BODY_PARAM_MASS: { case PhysicsServer3D::BODY_PARAM_MASS: {
const btScalar invMass = btBody->getInvMass(); const btScalar invMass = btBody->getInvMass();
return 0 == invMass ? 0 : 1 / invMass; return 0 == invMass ? 0 : 1 / invMass;
} }
case PhysicsServer::BODY_PARAM_LINEAR_DAMP: case PhysicsServer3D::BODY_PARAM_LINEAR_DAMP:
return linearDamp; return linearDamp;
case PhysicsServer::BODY_PARAM_ANGULAR_DAMP: case PhysicsServer3D::BODY_PARAM_ANGULAR_DAMP:
return angularDamp; return angularDamp;
case PhysicsServer::BODY_PARAM_GRAVITY_SCALE: case PhysicsServer3D::BODY_PARAM_GRAVITY_SCALE:
return gravity_scale; return gravity_scale;
default: default:
WARN_PRINT("Parameter " + itos(p_param) + " not supported by bullet"); WARN_PRINT("Parameter " + itos(p_param) + " not supported by bullet");
@ -541,31 +541,31 @@ real_t RigidBodyBullet::get_param(PhysicsServer::BodyParameter p_param) const {
} }
} }
void RigidBodyBullet::set_mode(PhysicsServer::BodyMode p_mode) { void RigidBodyBullet::set_mode(PhysicsServer3D::BodyMode p_mode) {
// This is necessary to block force_integration untile next move // This is necessary to block force_integration untile next move
can_integrate_forces = false; can_integrate_forces = false;
destroy_kinematic_utilities(); destroy_kinematic_utilities();
// The mode change is relevant to its mass // The mode change is relevant to its mass
switch (p_mode) { switch (p_mode) {
case PhysicsServer::BODY_MODE_KINEMATIC: case PhysicsServer3D::BODY_MODE_KINEMATIC:
mode = PhysicsServer::BODY_MODE_KINEMATIC; mode = PhysicsServer3D::BODY_MODE_KINEMATIC;
reload_axis_lock(); reload_axis_lock();
_internal_set_mass(0); _internal_set_mass(0);
init_kinematic_utilities(); init_kinematic_utilities();
break; break;
case PhysicsServer::BODY_MODE_STATIC: case PhysicsServer3D::BODY_MODE_STATIC:
mode = PhysicsServer::BODY_MODE_STATIC; mode = PhysicsServer3D::BODY_MODE_STATIC;
reload_axis_lock(); reload_axis_lock();
_internal_set_mass(0); _internal_set_mass(0);
break; break;
case PhysicsServer::BODY_MODE_RIGID: case PhysicsServer3D::BODY_MODE_RIGID:
mode = PhysicsServer::BODY_MODE_RIGID; mode = PhysicsServer3D::BODY_MODE_RIGID;
reload_axis_lock(); reload_axis_lock();
_internal_set_mass(0 == mass ? 1 : mass); _internal_set_mass(0 == mass ? 1 : mass);
scratch_space_override_modificator(); scratch_space_override_modificator();
break; break;
case PhysicsServer::BODY_MODE_CHARACTER: case PhysicsServer3D::BODY_MODE_CHARACTER:
mode = PhysicsServer::BODY_MODE_CHARACTER; mode = PhysicsServer3D::BODY_MODE_CHARACTER;
reload_axis_lock(); reload_axis_lock();
_internal_set_mass(0 == mass ? 1 : mass); _internal_set_mass(0 == mass ? 1 : mass);
scratch_space_override_modificator(); scratch_space_override_modificator();
@ -575,26 +575,26 @@ void RigidBodyBullet::set_mode(PhysicsServer::BodyMode p_mode) {
btBody->setAngularVelocity(btVector3(0, 0, 0)); btBody->setAngularVelocity(btVector3(0, 0, 0));
btBody->setLinearVelocity(btVector3(0, 0, 0)); btBody->setLinearVelocity(btVector3(0, 0, 0));
} }
PhysicsServer::BodyMode RigidBodyBullet::get_mode() const { PhysicsServer3D::BodyMode RigidBodyBullet::get_mode() const {
return mode; return mode;
} }
void RigidBodyBullet::set_state(PhysicsServer::BodyState p_state, const Variant &p_variant) { void RigidBodyBullet::set_state(PhysicsServer3D::BodyState p_state, const Variant &p_variant) {
switch (p_state) { switch (p_state) {
case PhysicsServer::BODY_STATE_TRANSFORM: case PhysicsServer3D::BODY_STATE_TRANSFORM:
set_transform(p_variant); set_transform(p_variant);
break; break;
case PhysicsServer::BODY_STATE_LINEAR_VELOCITY: case PhysicsServer3D::BODY_STATE_LINEAR_VELOCITY:
set_linear_velocity(p_variant); set_linear_velocity(p_variant);
break; break;
case PhysicsServer::BODY_STATE_ANGULAR_VELOCITY: case PhysicsServer3D::BODY_STATE_ANGULAR_VELOCITY:
set_angular_velocity(p_variant); set_angular_velocity(p_variant);
break; break;
case PhysicsServer::BODY_STATE_SLEEPING: case PhysicsServer3D::BODY_STATE_SLEEPING:
set_activation_state(!bool(p_variant)); set_activation_state(!bool(p_variant));
break; break;
case PhysicsServer::BODY_STATE_CAN_SLEEP: case PhysicsServer3D::BODY_STATE_CAN_SLEEP:
can_sleep = bool(p_variant); can_sleep = bool(p_variant);
if (!can_sleep) { if (!can_sleep) {
// Can't sleep // Can't sleep
@ -606,17 +606,17 @@ void RigidBodyBullet::set_state(PhysicsServer::BodyState p_state, const Variant
} }
} }
Variant RigidBodyBullet::get_state(PhysicsServer::BodyState p_state) const { Variant RigidBodyBullet::get_state(PhysicsServer3D::BodyState p_state) const {
switch (p_state) { switch (p_state) {
case PhysicsServer::BODY_STATE_TRANSFORM: case PhysicsServer3D::BODY_STATE_TRANSFORM:
return get_transform(); return get_transform();
case PhysicsServer::BODY_STATE_LINEAR_VELOCITY: case PhysicsServer3D::BODY_STATE_LINEAR_VELOCITY:
return get_linear_velocity(); return get_linear_velocity();
case PhysicsServer::BODY_STATE_ANGULAR_VELOCITY: case PhysicsServer3D::BODY_STATE_ANGULAR_VELOCITY:
return get_angular_velocity(); return get_angular_velocity();
case PhysicsServer::BODY_STATE_SLEEPING: case PhysicsServer3D::BODY_STATE_SLEEPING:
return !is_active(); return !is_active();
case PhysicsServer::BODY_STATE_CAN_SLEEP: case PhysicsServer3D::BODY_STATE_CAN_SLEEP:
return can_sleep; return can_sleep;
default: default:
WARN_PRINT("This state " + itos(p_state) + " is not supported by Bullet"); WARN_PRINT("This state " + itos(p_state) + " is not supported by Bullet");
@ -714,7 +714,7 @@ Vector3 RigidBodyBullet::get_applied_torque() const {
return gTotTorq; return gTotTorq;
} }
void RigidBodyBullet::set_axis_lock(PhysicsServer::BodyAxis p_axis, bool lock) { void RigidBodyBullet::set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool lock) {
if (lock) { if (lock) {
locked_axis |= p_axis; locked_axis |= p_axis;
} else { } else {
@ -724,18 +724,18 @@ void RigidBodyBullet::set_axis_lock(PhysicsServer::BodyAxis p_axis, bool lock) {
reload_axis_lock(); reload_axis_lock();
} }
bool RigidBodyBullet::is_axis_locked(PhysicsServer::BodyAxis p_axis) const { bool RigidBodyBullet::is_axis_locked(PhysicsServer3D::BodyAxis p_axis) const {
return locked_axis & p_axis; return locked_axis & p_axis;
} }
void RigidBodyBullet::reload_axis_lock() { void RigidBodyBullet::reload_axis_lock() {
btBody->setLinearFactor(btVector3(float(!is_axis_locked(PhysicsServer::BODY_AXIS_LINEAR_X)), float(!is_axis_locked(PhysicsServer::BODY_AXIS_LINEAR_Y)), float(!is_axis_locked(PhysicsServer::BODY_AXIS_LINEAR_Z)))); btBody->setLinearFactor(btVector3(float(!is_axis_locked(PhysicsServer3D::BODY_AXIS_LINEAR_X)), float(!is_axis_locked(PhysicsServer3D::BODY_AXIS_LINEAR_Y)), float(!is_axis_locked(PhysicsServer3D::BODY_AXIS_LINEAR_Z))));
if (PhysicsServer::BODY_MODE_CHARACTER == mode) { if (PhysicsServer3D::BODY_MODE_CHARACTER == mode) {
/// When character angular is always locked /// When character angular is always locked
btBody->setAngularFactor(btVector3(0., 0., 0.)); btBody->setAngularFactor(btVector3(0., 0., 0.));
} else { } else {
btBody->setAngularFactor(btVector3(float(!is_axis_locked(PhysicsServer::BODY_AXIS_ANGULAR_X)), float(!is_axis_locked(PhysicsServer::BODY_AXIS_ANGULAR_Y)), float(!is_axis_locked(PhysicsServer::BODY_AXIS_ANGULAR_Z)))); btBody->setAngularFactor(btVector3(float(!is_axis_locked(PhysicsServer3D::BODY_AXIS_ANGULAR_X)), float(!is_axis_locked(PhysicsServer3D::BODY_AXIS_ANGULAR_Y)), float(!is_axis_locked(PhysicsServer3D::BODY_AXIS_ANGULAR_Z))));
} }
} }
@ -794,7 +794,7 @@ Vector3 RigidBodyBullet::get_angular_velocity() const {
} }
void RigidBodyBullet::set_transform__bullet(const btTransform &p_global_transform) { void RigidBodyBullet::set_transform__bullet(const btTransform &p_global_transform) {
if (mode == PhysicsServer::BODY_MODE_KINEMATIC) { if (mode == PhysicsServer3D::BODY_MODE_KINEMATIC) {
if (space && space->get_delta_time() != 0) if (space && space->get_delta_time() != 0)
btBody->setLinearVelocity((p_global_transform.getOrigin() - btBody->getWorldTransform().getOrigin()) / space->get_delta_time()); btBody->setLinearVelocity((p_global_transform.getOrigin() - btBody->getWorldTransform().getOrigin()) / space->get_delta_time());
// The kinematic use MotionState class // The kinematic use MotionState class
@ -862,7 +862,7 @@ void RigidBodyBullet::on_enter_area(AreaBullet *p_area) {
} }
} }
} }
if (PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED != p_area->get_spOv_mode()) { if (PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED != p_area->get_spOv_mode()) {
scratch_space_override_modificator(); scratch_space_override_modificator();
} }
@ -895,7 +895,7 @@ void RigidBodyBullet::on_exit_area(AreaBullet *p_area) {
--areaWhereIamCount; --areaWhereIamCount;
areasWhereIam.write[areaWhereIamCount] = NULL; // Even if this is not required, I clear the last element to be safe areasWhereIam.write[areaWhereIamCount] = NULL; // Even if this is not required, I clear the last element to be safe
if (PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED != p_area->get_spOv_mode()) { if (PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED != p_area->get_spOv_mode()) {
scratch_space_override_modificator(); scratch_space_override_modificator();
} }
} }
@ -904,7 +904,7 @@ void RigidBodyBullet::on_exit_area(AreaBullet *p_area) {
void RigidBodyBullet::reload_space_override_modificator() { void RigidBodyBullet::reload_space_override_modificator() {
// Make sure that kinematic bodies have their total gravity calculated // Make sure that kinematic bodies have their total gravity calculated
if (!is_active() && PhysicsServer::BODY_MODE_KINEMATIC != mode) if (!is_active() && PhysicsServer3D::BODY_MODE_KINEMATIC != mode)
return; return;
Vector3 newGravity(space->get_gravity_direction() * space->get_gravity_magnitude()); Vector3 newGravity(space->get_gravity_direction() * space->get_gravity_magnitude());
@ -920,7 +920,7 @@ void RigidBodyBullet::reload_space_override_modificator() {
currentArea = areasWhereIam[i]; currentArea = areasWhereIam[i];
if (!currentArea || PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED == currentArea->get_spOv_mode()) { if (!currentArea || PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED == currentArea->get_spOv_mode()) {
continue; continue;
} }
@ -954,11 +954,11 @@ void RigidBodyBullet::reload_space_override_modificator() {
} }
switch (currentArea->get_spOv_mode()) { switch (currentArea->get_spOv_mode()) {
case PhysicsServer::AREA_SPACE_OVERRIDE_DISABLED: case PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED:
/// This area does not affect gravity/damp. These are generally areas /// This area does not affect gravity/damp. These are generally areas
/// that exist only to detect collisions, and objects entering or exiting them. /// that exist only to detect collisions, and objects entering or exiting them.
break; break;
case PhysicsServer::AREA_SPACE_OVERRIDE_COMBINE: case PhysicsServer3D::AREA_SPACE_OVERRIDE_COMBINE:
/// This area adds its gravity/damp values to whatever has been /// This area adds its gravity/damp values to whatever has been
/// calculated so far. This way, many overlapping areas can combine /// calculated so far. This way, many overlapping areas can combine
/// their physics to make interesting /// their physics to make interesting
@ -967,7 +967,7 @@ void RigidBodyBullet::reload_space_override_modificator() {
newAngularDamp += currentArea->get_spOv_angularDamp(); newAngularDamp += currentArea->get_spOv_angularDamp();
++countCombined; ++countCombined;
break; break;
case PhysicsServer::AREA_SPACE_OVERRIDE_COMBINE_REPLACE: case PhysicsServer3D::AREA_SPACE_OVERRIDE_COMBINE_REPLACE:
/// This area adds its gravity/damp values to whatever has been calculated /// This area adds its gravity/damp values to whatever has been calculated
/// so far. Then stops taking into account the rest of the areas, even the /// so far. Then stops taking into account the rest of the areas, even the
/// default one. /// default one.
@ -976,7 +976,7 @@ void RigidBodyBullet::reload_space_override_modificator() {
newAngularDamp += currentArea->get_spOv_angularDamp(); newAngularDamp += currentArea->get_spOv_angularDamp();
++countCombined; ++countCombined;
goto endAreasCycle; goto endAreasCycle;
case PhysicsServer::AREA_SPACE_OVERRIDE_REPLACE: case PhysicsServer3D::AREA_SPACE_OVERRIDE_REPLACE:
/// This area replaces any gravity/damp, even the default one, and /// This area replaces any gravity/damp, even the default one, and
/// stops taking into account the rest of the areas. /// stops taking into account the rest of the areas.
newGravity = support_gravity; newGravity = support_gravity;
@ -984,7 +984,7 @@ void RigidBodyBullet::reload_space_override_modificator() {
newAngularDamp = currentArea->get_spOv_angularDamp(); newAngularDamp = currentArea->get_spOv_angularDamp();
countCombined = 1; countCombined = 1;
goto endAreasCycle; goto endAreasCycle;
case PhysicsServer::AREA_SPACE_OVERRIDE_REPLACE_COMBINE: case PhysicsServer3D::AREA_SPACE_OVERRIDE_REPLACE_COMBINE:
/// This area replaces any gravity/damp calculated so far, but keeps /// This area replaces any gravity/damp calculated so far, but keeps
/// calculating the rest of the areas, down to the default one. /// calculating the rest of the areas, down to the default one.
newGravity = support_gravity; newGravity = support_gravity;
@ -1032,14 +1032,14 @@ void RigidBodyBullet::_internal_set_mass(real_t p_mass) {
const bool isDynamic = p_mass != 0.f; const bool isDynamic = p_mass != 0.f;
if (isDynamic) { if (isDynamic) {
if (PhysicsServer::BODY_MODE_RIGID != mode && PhysicsServer::BODY_MODE_CHARACTER != mode) if (PhysicsServer3D::BODY_MODE_RIGID != mode && PhysicsServer3D::BODY_MODE_CHARACTER != mode)
return; return;
m_isStatic = false; m_isStatic = false;
if (mainShape) if (mainShape)
mainShape->calculateLocalInertia(p_mass, localInertia); mainShape->calculateLocalInertia(p_mass, localInertia);
if (PhysicsServer::BODY_MODE_RIGID == mode) { if (PhysicsServer3D::BODY_MODE_RIGID == mode) {
btBody->setCollisionFlags(clearedCurrentFlags); // Just set the flags without Kin and Static btBody->setCollisionFlags(clearedCurrentFlags); // Just set the flags without Kin and Static
} else { } else {
@ -1054,11 +1054,11 @@ void RigidBodyBullet::_internal_set_mass(real_t p_mass) {
} }
} else { } else {
if (PhysicsServer::BODY_MODE_STATIC != mode && PhysicsServer::BODY_MODE_KINEMATIC != mode) if (PhysicsServer3D::BODY_MODE_STATIC != mode && PhysicsServer3D::BODY_MODE_KINEMATIC != mode)
return; return;
m_isStatic = true; m_isStatic = true;
if (PhysicsServer::BODY_MODE_STATIC == mode) { if (PhysicsServer3D::BODY_MODE_STATIC == mode) {
btBody->setCollisionFlags(clearedCurrentFlags | btCollisionObject::CF_STATIC_OBJECT); btBody->setCollisionFlags(clearedCurrentFlags | btCollisionObject::CF_STATIC_OBJECT);
} else { } else {

View File

@ -51,10 +51,10 @@ class BulletPhysicsDirectBodyState;
/// is set to be only in one single thread. /// is set to be only in one single thread.
/// ///
/// In the system there is only one object at a time that manage all bodies and is /// In the system there is only one object at a time that manage all bodies and is
/// created by BulletPhysicsServer and is held by the "singleton" variable of this class /// created by BulletPhysicsServer3D and is held by the "singleton" variable of this class
/// Each time something require it, the body must be set again. /// Each time something require it, the body must be set again.
class BulletPhysicsDirectBodyState : public PhysicsDirectBodyState { class BulletPhysicsDirectBodyState : public PhysicsDirectBodyState3D {
GDCLASS(BulletPhysicsDirectBodyState, PhysicsDirectBodyState); GDCLASS(BulletPhysicsDirectBodyState, PhysicsDirectBodyState3D);
static BulletPhysicsDirectBodyState *singleton; static BulletPhysicsDirectBodyState *singleton;
@ -138,7 +138,7 @@ public:
// Skip the execution of this function // Skip the execution of this function
} }
virtual PhysicsDirectSpaceState *get_space_state(); virtual PhysicsDirectSpaceState3D *get_space_state();
}; };
class RigidBodyBullet : public RigidCollisionObjectBullet { class RigidBodyBullet : public RigidCollisionObjectBullet {
@ -192,7 +192,7 @@ private:
// This is required only for Kinematic movement // This is required only for Kinematic movement
KinematicUtilities *kinematic_utilities; KinematicUtilities *kinematic_utilities;
PhysicsServer::BodyMode mode; PhysicsServer3D::BodyMode mode;
GodotMotionState *godotMotionState; GodotMotionState *godotMotionState;
btRigidBody *btBody; btRigidBody *btBody;
uint16_t locked_axis; uint16_t locked_axis;
@ -278,14 +278,14 @@ public:
void set_omit_forces_integration(bool p_omit); void set_omit_forces_integration(bool p_omit);
_FORCE_INLINE_ bool get_omit_forces_integration() const { return omit_forces_integration; } _FORCE_INLINE_ bool get_omit_forces_integration() const { return omit_forces_integration; }
void set_param(PhysicsServer::BodyParameter p_param, real_t); void set_param(PhysicsServer3D::BodyParameter p_param, real_t);
real_t get_param(PhysicsServer::BodyParameter p_param) const; real_t get_param(PhysicsServer3D::BodyParameter p_param) const;
void set_mode(PhysicsServer::BodyMode p_mode); void set_mode(PhysicsServer3D::BodyMode p_mode);
PhysicsServer::BodyMode get_mode() const; PhysicsServer3D::BodyMode get_mode() const;
void set_state(PhysicsServer::BodyState p_state, const Variant &p_variant); void set_state(PhysicsServer3D::BodyState p_state, const Variant &p_variant);
Variant get_state(PhysicsServer::BodyState p_state) const; Variant get_state(PhysicsServer3D::BodyState p_state) const;
void apply_impulse(const Vector3 &p_pos, const Vector3 &p_impulse); void apply_impulse(const Vector3 &p_pos, const Vector3 &p_impulse);
void apply_central_impulse(const Vector3 &p_impulse); void apply_central_impulse(const Vector3 &p_impulse);
@ -300,8 +300,8 @@ public:
void set_applied_torque(const Vector3 &p_torque); void set_applied_torque(const Vector3 &p_torque);
Vector3 get_applied_torque() const; Vector3 get_applied_torque() const;
void set_axis_lock(PhysicsServer::BodyAxis p_axis, bool lock); void set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool lock);
bool is_axis_locked(PhysicsServer::BodyAxis p_axis) const; bool is_axis_locked(PhysicsServer3D::BodyAxis p_axis) const;
void reload_axis_lock(); void reload_axis_lock();
/// Doc: /// Doc:

View File

@ -150,7 +150,7 @@ btHeightfieldTerrainShape *ShapeBullet::create_shape_height_field(Vector<real_t>
btHeightfieldTerrainShape *heightfield = bulletnew(btHeightfieldTerrainShape(p_width, p_depth, heightsPtr, ignoredHeightScale, p_min_height, p_max_height, YAxis, PHY_FLOAT, flipQuadEdges)); btHeightfieldTerrainShape *heightfield = bulletnew(btHeightfieldTerrainShape(p_width, p_depth, heightsPtr, ignoredHeightScale, p_min_height, p_max_height, YAxis, PHY_FLOAT, flipQuadEdges));
// The shape can be created without params when you do PhysicsServer.shape_create(PhysicsServer.SHAPE_HEIGHTMAP) // The shape can be created without params when you do PhysicsServer3D.shape_create(PhysicsServer3D.SHAPE_HEIGHTMAP)
if (heightsPtr) if (heightsPtr)
heightfield->buildAccelerator(16); heightfield->buildAccelerator(16);
@ -176,8 +176,8 @@ Variant PlaneShapeBullet::get_data() const {
return plane; return plane;
} }
PhysicsServer::ShapeType PlaneShapeBullet::get_type() const { PhysicsServer3D::ShapeType PlaneShapeBullet::get_type() const {
return PhysicsServer::SHAPE_PLANE; return PhysicsServer3D::SHAPE_PLANE;
} }
void PlaneShapeBullet::setup(const Plane &p_plane) { void PlaneShapeBullet::setup(const Plane &p_plane) {
@ -204,8 +204,8 @@ Variant SphereShapeBullet::get_data() const {
return radius; return radius;
} }
PhysicsServer::ShapeType SphereShapeBullet::get_type() const { PhysicsServer3D::ShapeType SphereShapeBullet::get_type() const {
return PhysicsServer::SHAPE_SPHERE; return PhysicsServer3D::SHAPE_SPHERE;
} }
void SphereShapeBullet::setup(real_t p_radius) { void SphereShapeBullet::setup(real_t p_radius) {
@ -231,8 +231,8 @@ Variant BoxShapeBullet::get_data() const {
return g_half_extents; return g_half_extents;
} }
PhysicsServer::ShapeType BoxShapeBullet::get_type() const { PhysicsServer3D::ShapeType BoxShapeBullet::get_type() const {
return PhysicsServer::SHAPE_BOX; return PhysicsServer3D::SHAPE_BOX;
} }
void BoxShapeBullet::setup(const Vector3 &p_half_extents) { void BoxShapeBullet::setup(const Vector3 &p_half_extents) {
@ -263,8 +263,8 @@ Variant CapsuleShapeBullet::get_data() const {
return d; return d;
} }
PhysicsServer::ShapeType CapsuleShapeBullet::get_type() const { PhysicsServer3D::ShapeType CapsuleShapeBullet::get_type() const {
return PhysicsServer::SHAPE_CAPSULE; return PhysicsServer3D::SHAPE_CAPSULE;
} }
void CapsuleShapeBullet::setup(real_t p_height, real_t p_radius) { void CapsuleShapeBullet::setup(real_t p_height, real_t p_radius) {
@ -296,8 +296,8 @@ Variant CylinderShapeBullet::get_data() const {
return d; return d;
} }
PhysicsServer::ShapeType CylinderShapeBullet::get_type() const { PhysicsServer3D::ShapeType CylinderShapeBullet::get_type() const {
return PhysicsServer::SHAPE_CYLINDER; return PhysicsServer3D::SHAPE_CYLINDER;
} }
void CylinderShapeBullet::setup(real_t p_height, real_t p_radius) { void CylinderShapeBullet::setup(real_t p_height, real_t p_radius) {
@ -334,8 +334,8 @@ Variant ConvexPolygonShapeBullet::get_data() const {
return out_vertices; return out_vertices;
} }
PhysicsServer::ShapeType ConvexPolygonShapeBullet::get_type() const { PhysicsServer3D::ShapeType ConvexPolygonShapeBullet::get_type() const {
return PhysicsServer::SHAPE_CONVEX_POLYGON; return PhysicsServer3D::SHAPE_CONVEX_POLYGON;
} }
void ConvexPolygonShapeBullet::setup(const Vector<Vector3> &p_vertices) { void ConvexPolygonShapeBullet::setup(const Vector<Vector3> &p_vertices) {
@ -381,8 +381,8 @@ Variant ConcavePolygonShapeBullet::get_data() const {
return faces; return faces;
} }
PhysicsServer::ShapeType ConcavePolygonShapeBullet::get_type() const { PhysicsServer3D::ShapeType ConcavePolygonShapeBullet::get_type() const {
return PhysicsServer::SHAPE_CONCAVE_POLYGON; return PhysicsServer3D::SHAPE_CONCAVE_POLYGON;
} }
void ConcavePolygonShapeBullet::setup(Vector<Vector3> p_faces) { void ConcavePolygonShapeBullet::setup(Vector<Vector3> p_faces) {
@ -536,8 +536,8 @@ Variant HeightMapShapeBullet::get_data() const {
ERR_FAIL_V(Variant()); ERR_FAIL_V(Variant());
} }
PhysicsServer::ShapeType HeightMapShapeBullet::get_type() const { PhysicsServer3D::ShapeType HeightMapShapeBullet::get_type() const {
return PhysicsServer::SHAPE_HEIGHTMAP; return PhysicsServer3D::SHAPE_HEIGHTMAP;
} }
void HeightMapShapeBullet::setup(Vector<real_t> &p_heights, int p_width, int p_depth, real_t p_min_height, real_t p_max_height) { void HeightMapShapeBullet::setup(Vector<real_t> &p_heights, int p_width, int p_depth, real_t p_min_height, real_t p_max_height) {
@ -580,8 +580,8 @@ Variant RayShapeBullet::get_data() const {
return d; return d;
} }
PhysicsServer::ShapeType RayShapeBullet::get_type() const { PhysicsServer3D::ShapeType RayShapeBullet::get_type() const {
return PhysicsServer::SHAPE_RAY; return PhysicsServer3D::SHAPE_RAY;
} }
void RayShapeBullet::setup(real_t p_length, bool p_slips_on_slope) { void RayShapeBullet::setup(real_t p_length, bool p_slips_on_slope) {

View File

@ -34,7 +34,7 @@
#include "core/math/geometry.h" #include "core/math/geometry.h"
#include "core/variant.h" #include "core/variant.h"
#include "rid_bullet.h" #include "rid_bullet.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include <LinearMath/btAlignedObjectArray.h> #include <LinearMath/btAlignedObjectArray.h>
#include <LinearMath/btScalar.h> #include <LinearMath/btScalar.h>
@ -78,7 +78,7 @@ public:
virtual void set_data(const Variant &p_data) = 0; virtual void set_data(const Variant &p_data) = 0;
virtual Variant get_data() const = 0; virtual Variant get_data() const = 0;
virtual PhysicsServer::ShapeType get_type() const = 0; virtual PhysicsServer3D::ShapeType get_type() const = 0;
public: public:
static class btEmptyShape *create_shape_empty(); static class btEmptyShape *create_shape_empty();
@ -103,7 +103,7 @@ public:
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -120,7 +120,7 @@ public:
_FORCE_INLINE_ real_t get_radius() { return radius; } _FORCE_INLINE_ real_t get_radius() { return radius; }
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -137,7 +137,7 @@ public:
_FORCE_INLINE_ const btVector3 &get_half_extents() { return half_extents; } _FORCE_INLINE_ const btVector3 &get_half_extents() { return half_extents; }
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -156,7 +156,7 @@ public:
_FORCE_INLINE_ real_t get_radius() { return radius; } _FORCE_INLINE_ real_t get_radius() { return radius; }
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -175,7 +175,7 @@ public:
_FORCE_INLINE_ real_t get_radius() { return radius; } _FORCE_INLINE_ real_t get_radius() { return radius; }
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_margin = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_margin = 0);
private: private:
@ -192,7 +192,7 @@ public:
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
void get_vertices(Vector<Vector3> &out_vertices); void get_vertices(Vector<Vector3> &out_vertices);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -210,7 +210,7 @@ public:
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -230,7 +230,7 @@ public:
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:
@ -247,7 +247,7 @@ public:
virtual void set_data(const Variant &p_data); virtual void set_data(const Variant &p_data);
virtual Variant get_data() const; virtual Variant get_data() const;
virtual PhysicsServer::ShapeType get_type() const; virtual PhysicsServer3D::ShapeType get_type() const;
virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0); virtual btCollisionShape *create_bt_shape(const btVector3 &p_implicit_scale, real_t p_extra_edge = 0);
private: private:

View File

@ -342,58 +342,58 @@ real_t SliderJointBullet::getLinearPos() {
; ;
} }
void SliderJointBullet::set_param(PhysicsServer::SliderJointParam p_param, real_t p_value) { void SliderJointBullet::set_param(PhysicsServer3D::SliderJointParam p_param, real_t p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_UPPER: setUpperLinLimit(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_UPPER: setUpperLinLimit(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_LOWER: setLowerLinLimit(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_LOWER: setLowerLinLimit(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS: setSoftnessLimLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS: setSoftnessLimLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION: setRestitutionLimLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION: setRestitutionLimLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_DAMPING: setDampingLimLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_DAMPING: setDampingLimLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_MOTION_SOFTNESS: setSoftnessDirLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_MOTION_SOFTNESS: setSoftnessDirLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_MOTION_RESTITUTION: setRestitutionDirLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_MOTION_RESTITUTION: setRestitutionDirLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_MOTION_DAMPING: setDampingDirLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_MOTION_DAMPING: setDampingDirLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS: setSoftnessOrthoLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS: setSoftnessOrthoLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION: setRestitutionOrthoLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION: setRestitutionOrthoLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING: setDampingOrthoLin(p_value); break; case PhysicsServer3D::SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING: setDampingOrthoLin(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_UPPER: setUpperAngLimit(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_UPPER: setUpperAngLimit(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_LOWER: setLowerAngLimit(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_LOWER: setLowerAngLimit(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS: setSoftnessLimAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS: setSoftnessLimAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION: setRestitutionLimAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION: setRestitutionLimAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_DAMPING: setDampingLimAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_DAMPING: setDampingLimAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS: setSoftnessDirAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS: setSoftnessDirAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION: setRestitutionDirAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION: setRestitutionDirAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_MOTION_DAMPING: setDampingDirAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_MOTION_DAMPING: setDampingDirAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: setSoftnessOrthoAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: setSoftnessOrthoAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: setRestitutionOrthoAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: setRestitutionOrthoAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: setDampingOrthoAng(p_value); break; case PhysicsServer3D::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: setDampingOrthoAng(p_value); break;
case PhysicsServer::SLIDER_JOINT_MAX: break; // Can't happen, but silences warning case PhysicsServer3D::SLIDER_JOINT_MAX: break; // Can't happen, but silences warning
} }
} }
real_t SliderJointBullet::get_param(PhysicsServer::SliderJointParam p_param) const { real_t SliderJointBullet::get_param(PhysicsServer3D::SliderJointParam p_param) const {
switch (p_param) { switch (p_param) {
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_UPPER: return getUpperLinLimit(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_UPPER: return getUpperLinLimit();
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_LOWER: return getLowerLinLimit(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_LOWER: return getLowerLinLimit();
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS: return getSoftnessLimLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS: return getSoftnessLimLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION: return getRestitutionLimLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION: return getRestitutionLimLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_LIMIT_DAMPING: return getDampingLimLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_DAMPING: return getDampingLimLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_MOTION_SOFTNESS: return getSoftnessDirLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_MOTION_SOFTNESS: return getSoftnessDirLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_MOTION_RESTITUTION: return getRestitutionDirLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_MOTION_RESTITUTION: return getRestitutionDirLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_MOTION_DAMPING: return getDampingDirLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_MOTION_DAMPING: return getDampingDirLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS: return getSoftnessOrthoLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS: return getSoftnessOrthoLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION: return getRestitutionOrthoLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION: return getRestitutionOrthoLin();
case PhysicsServer::SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING: return getDampingOrthoLin(); case PhysicsServer3D::SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING: return getDampingOrthoLin();
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_UPPER: return getUpperAngLimit(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_UPPER: return getUpperAngLimit();
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_LOWER: return getLowerAngLimit(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_LOWER: return getLowerAngLimit();
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS: return getSoftnessLimAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS: return getSoftnessLimAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION: return getRestitutionLimAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION: return getRestitutionLimAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_LIMIT_DAMPING: return getDampingLimAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_LIMIT_DAMPING: return getDampingLimAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS: return getSoftnessDirAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS: return getSoftnessDirAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION: return getRestitutionDirAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION: return getRestitutionDirAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_MOTION_DAMPING: return getDampingDirAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_MOTION_DAMPING: return getDampingDirAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: return getSoftnessOrthoAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS: return getSoftnessOrthoAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: return getRestitutionOrthoAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION: return getRestitutionOrthoAng();
case PhysicsServer::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: return getDampingOrthoAng(); case PhysicsServer3D::SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING: return getDampingOrthoAng();
default: default:
return 0; return 0;
} }

View File

@ -46,7 +46,7 @@ public:
/// Reference frame is A /// Reference frame is A
SliderJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &frameInA, const Transform &frameInB); SliderJointBullet(RigidBodyBullet *rbA, RigidBodyBullet *rbB, const Transform &frameInA, const Transform &frameInB);
virtual PhysicsServer::JointType get_type() const { return PhysicsServer::JOINT_SLIDER; } virtual PhysicsServer3D::JointType get_type() const { return PhysicsServer3D::JOINT_SLIDER; }
const RigidBodyBullet *getRigidBodyA() const; const RigidBodyBullet *getRigidBodyA() const;
const RigidBodyBullet *getRigidBodyB() const; const RigidBodyBullet *getRigidBodyB() const;
@ -115,7 +115,7 @@ public:
real_t getMaxAngMotorForce(); real_t getMaxAngMotorForce();
real_t getLinearPos(); real_t getLinearPos();
void set_param(PhysicsServer::SliderJointParam p_param, real_t p_value); void set_param(PhysicsServer3D::SliderJointParam p_param, real_t p_value);
real_t get_param(PhysicsServer::SliderJointParam p_param) const; real_t get_param(PhysicsServer3D::SliderJointParam p_param) const;
}; };
#endif #endif

View File

@ -76,7 +76,7 @@ void SoftBodyBullet::on_enter_area(AreaBullet *p_area) {}
void SoftBodyBullet::on_exit_area(AreaBullet *p_area) {} void SoftBodyBullet::on_exit_area(AreaBullet *p_area) {}
void SoftBodyBullet::update_visual_server(SoftBodyVisualServerHandler *p_visual_server_handler) { void SoftBodyBullet::update_rendering_server(SoftBodyRenderingServerHandler *p_rendering_server_handler) {
if (!bt_soft_body) if (!bt_soft_body)
return; return;
@ -96,8 +96,8 @@ void SoftBodyBullet::update_visual_server(SoftBodyVisualServerHandler *p_visual_
const int vs_indices_size(vs_indices->size()); const int vs_indices_size(vs_indices->size());
for (int x = 0; x < vs_indices_size; ++x) { for (int x = 0; x < vs_indices_size; ++x) {
p_visual_server_handler->set_vertex((*vs_indices)[x], vertex_position); p_rendering_server_handler->set_vertex((*vs_indices)[x], vertex_position);
p_visual_server_handler->set_normal((*vs_indices)[x], vertex_normal); p_rendering_server_handler->set_normal((*vs_indices)[x], vertex_normal);
} }
} }
@ -112,7 +112,7 @@ void SoftBodyBullet::update_visual_server(SoftBodyVisualServerHandler *p_visual_
B_TO_G(aabb_min, aabb.position); B_TO_G(aabb_min, aabb.position);
B_TO_G(size, aabb.size); B_TO_G(size, aabb.size);
p_visual_server_handler->set_aabb(aabb); p_rendering_server_handler->set_aabb(aabb);
} }
void SoftBodyBullet::set_soft_mesh(const Ref<Mesh> &p_mesh) { void SoftBodyBullet::set_soft_mesh(const Ref<Mesh> &p_mesh) {
@ -129,8 +129,8 @@ void SoftBodyBullet::set_soft_mesh(const Ref<Mesh> &p_mesh) {
} }
Array arrays = soft_mesh->surface_get_arrays(0); Array arrays = soft_mesh->surface_get_arrays(0);
ERR_FAIL_COND(!(soft_mesh->surface_get_format(0) & VS::ARRAY_FORMAT_INDEX)); ERR_FAIL_COND(!(soft_mesh->surface_get_format(0) & RS::ARRAY_FORMAT_INDEX));
set_trimesh_body_shape(arrays[VS::ARRAY_INDEX], arrays[VS::ARRAY_VERTEX]); set_trimesh_body_shape(arrays[RS::ARRAY_INDEX], arrays[RS::ARRAY_VERTEX]);
} }
void SoftBodyBullet::destroy_soft_body() { void SoftBodyBullet::destroy_soft_body() {
@ -184,7 +184,7 @@ void SoftBodyBullet::get_node_offset(int p_node_index, Vector3 &r_offset) const
return; return;
Array arrays = soft_mesh->surface_get_arrays(0); Array arrays = soft_mesh->surface_get_arrays(0);
Vector<Vector3> vertices(arrays[VS::ARRAY_VERTEX]); Vector<Vector3> vertices(arrays[RS::ARRAY_VERTEX]);
if (0 <= p_node_index && vertices.size() > p_node_index) { if (0 <= p_node_index && vertices.size() > p_node_index) {
r_offset = vertices[p_node_index]; r_offset = vertices[p_node_index];
@ -230,7 +230,7 @@ void SoftBodyBullet::reset_all_node_positions() {
return; return;
Array arrays = soft_mesh->surface_get_arrays(0); Array arrays = soft_mesh->surface_get_arrays(0);
Vector<Vector3> vs_vertices(arrays[VS::ARRAY_VERTEX]); Vector<Vector3> vs_vertices(arrays[RS::ARRAY_VERTEX]);
const Vector3 *vs_vertices_read = vs_vertices.ptr(); const Vector3 *vs_vertices_read = vs_vertices.ptr();
for (int vertex_index = bt_soft_body->m_nodes.size() - 1; 0 <= vertex_index; --vertex_index) { for (int vertex_index = bt_soft_body->m_nodes.size() - 1; 0 <= vertex_index; --vertex_index) {

View File

@ -43,7 +43,7 @@
#include "BulletSoftBody/btSoftBodyHelpers.h" #include "BulletSoftBody/btSoftBodyHelpers.h"
#include "collision_object_bullet.h" #include "collision_object_bullet.h"
#include "scene/resources/mesh.h" #include "scene/resources/mesh.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#ifdef x11_None #ifdef x11_None
/// This is required to re add the macro None defined by x11 compiler /// This is required to re add the macro None defined by x11 compiler
@ -100,7 +100,7 @@ public:
_FORCE_INLINE_ btSoftBody *get_bt_soft_body() const { return bt_soft_body; } _FORCE_INLINE_ btSoftBody *get_bt_soft_body() const { return bt_soft_body; }
void update_visual_server(class SoftBodyVisualServerHandler *p_visual_server_handler); void update_rendering_server(class SoftBodyRenderingServerHandler *p_rendering_server_handler);
void set_soft_mesh(const Ref<Mesh> &p_mesh); void set_soft_mesh(const Ref<Mesh> &p_mesh);
void destroy_soft_body(); void destroy_soft_body();

View File

@ -39,7 +39,7 @@
#include "godot_collision_configuration.h" #include "godot_collision_configuration.h"
#include "godot_collision_dispatcher.h" #include "godot_collision_dispatcher.h"
#include "rigid_body_bullet.h" #include "rigid_body_bullet.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include "soft_body_bullet.h" #include "soft_body_bullet.h"
#include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h> #include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h>
@ -59,7 +59,7 @@
*/ */
BulletPhysicsDirectSpaceState::BulletPhysicsDirectSpaceState(SpaceBullet *p_space) : BulletPhysicsDirectSpaceState::BulletPhysicsDirectSpaceState(SpaceBullet *p_space) :
PhysicsDirectSpaceState(), PhysicsDirectSpaceState3D(),
space(p_space) {} space(p_space) {}
int BulletPhysicsDirectSpaceState::intersect_point(const Vector3 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) { int BulletPhysicsDirectSpaceState::intersect_point(const Vector3 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
@ -366,27 +366,27 @@ void SpaceBullet::step(real_t p_delta_time) {
dynamicsWorld->stepSimulation(p_delta_time, 0, 0); dynamicsWorld->stepSimulation(p_delta_time, 0, 0);
} }
void SpaceBullet::set_param(PhysicsServer::AreaParameter p_param, const Variant &p_value) { void SpaceBullet::set_param(PhysicsServer3D::AreaParameter p_param, const Variant &p_value) {
assert(dynamicsWorld); assert(dynamicsWorld);
switch (p_param) { switch (p_param) {
case PhysicsServer::AREA_PARAM_GRAVITY: case PhysicsServer3D::AREA_PARAM_GRAVITY:
gravityMagnitude = p_value; gravityMagnitude = p_value;
update_gravity(); update_gravity();
break; break;
case PhysicsServer::AREA_PARAM_GRAVITY_VECTOR: case PhysicsServer3D::AREA_PARAM_GRAVITY_VECTOR:
gravityDirection = p_value; gravityDirection = p_value;
update_gravity(); update_gravity();
break; break;
case PhysicsServer::AREA_PARAM_LINEAR_DAMP: case PhysicsServer3D::AREA_PARAM_LINEAR_DAMP:
case PhysicsServer::AREA_PARAM_ANGULAR_DAMP: case PhysicsServer3D::AREA_PARAM_ANGULAR_DAMP:
break; // No damp break; // No damp
case PhysicsServer::AREA_PARAM_PRIORITY: case PhysicsServer3D::AREA_PARAM_PRIORITY:
// Priority is always 0, the lower // Priority is always 0, the lower
break; break;
case PhysicsServer::AREA_PARAM_GRAVITY_IS_POINT: case PhysicsServer3D::AREA_PARAM_GRAVITY_IS_POINT:
case PhysicsServer::AREA_PARAM_GRAVITY_DISTANCE_SCALE: case PhysicsServer3D::AREA_PARAM_GRAVITY_DISTANCE_SCALE:
case PhysicsServer::AREA_PARAM_GRAVITY_POINT_ATTENUATION: case PhysicsServer3D::AREA_PARAM_GRAVITY_POINT_ATTENUATION:
break; break;
default: default:
WARN_PRINT("This set parameter (" + itos(p_param) + ") is ignored, the SpaceBullet doesn't support it."); WARN_PRINT("This set parameter (" + itos(p_param) + ") is ignored, the SpaceBullet doesn't support it.");
@ -394,22 +394,22 @@ void SpaceBullet::set_param(PhysicsServer::AreaParameter p_param, const Variant
} }
} }
Variant SpaceBullet::get_param(PhysicsServer::AreaParameter p_param) { Variant SpaceBullet::get_param(PhysicsServer3D::AreaParameter p_param) {
switch (p_param) { switch (p_param) {
case PhysicsServer::AREA_PARAM_GRAVITY: case PhysicsServer3D::AREA_PARAM_GRAVITY:
return gravityMagnitude; return gravityMagnitude;
case PhysicsServer::AREA_PARAM_GRAVITY_VECTOR: case PhysicsServer3D::AREA_PARAM_GRAVITY_VECTOR:
return gravityDirection; return gravityDirection;
case PhysicsServer::AREA_PARAM_LINEAR_DAMP: case PhysicsServer3D::AREA_PARAM_LINEAR_DAMP:
case PhysicsServer::AREA_PARAM_ANGULAR_DAMP: case PhysicsServer3D::AREA_PARAM_ANGULAR_DAMP:
return 0; // No damp return 0; // No damp
case PhysicsServer::AREA_PARAM_PRIORITY: case PhysicsServer3D::AREA_PARAM_PRIORITY:
return 0; // Priority is always 0, the lower return 0; // Priority is always 0, the lower
case PhysicsServer::AREA_PARAM_GRAVITY_IS_POINT: case PhysicsServer3D::AREA_PARAM_GRAVITY_IS_POINT:
return false; return false;
case PhysicsServer::AREA_PARAM_GRAVITY_DISTANCE_SCALE: case PhysicsServer3D::AREA_PARAM_GRAVITY_DISTANCE_SCALE:
return 0; return 0;
case PhysicsServer::AREA_PARAM_GRAVITY_POINT_ATTENUATION: case PhysicsServer3D::AREA_PARAM_GRAVITY_POINT_ATTENUATION:
return 0; return 0;
default: default:
WARN_PRINT("This get parameter (" + itos(p_param) + ") is ignored, the SpaceBullet doesn't support it."); WARN_PRINT("This get parameter (" + itos(p_param) + ") is ignored, the SpaceBullet doesn't support it.");
@ -417,32 +417,32 @@ Variant SpaceBullet::get_param(PhysicsServer::AreaParameter p_param) {
} }
} }
void SpaceBullet::set_param(PhysicsServer::SpaceParameter p_param, real_t p_value) { void SpaceBullet::set_param(PhysicsServer3D::SpaceParameter p_param, real_t p_value) {
switch (p_param) { switch (p_param) {
case PhysicsServer::SPACE_PARAM_CONTACT_RECYCLE_RADIUS: case PhysicsServer3D::SPACE_PARAM_CONTACT_RECYCLE_RADIUS:
case PhysicsServer::SPACE_PARAM_CONTACT_MAX_SEPARATION: case PhysicsServer3D::SPACE_PARAM_CONTACT_MAX_SEPARATION:
case PhysicsServer::SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION: case PhysicsServer3D::SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION:
case PhysicsServer::SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD: case PhysicsServer3D::SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD:
case PhysicsServer::SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD: case PhysicsServer3D::SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD:
case PhysicsServer::SPACE_PARAM_BODY_TIME_TO_SLEEP: case PhysicsServer3D::SPACE_PARAM_BODY_TIME_TO_SLEEP:
case PhysicsServer::SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO: case PhysicsServer3D::SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO:
case PhysicsServer::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS: case PhysicsServer3D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
default: default:
WARN_PRINT("This set parameter (" + itos(p_param) + ") is ignored, the SpaceBullet doesn't support it."); WARN_PRINT("This set parameter (" + itos(p_param) + ") is ignored, the SpaceBullet doesn't support it.");
break; break;
} }
} }
real_t SpaceBullet::get_param(PhysicsServer::SpaceParameter p_param) { real_t SpaceBullet::get_param(PhysicsServer3D::SpaceParameter p_param) {
switch (p_param) { switch (p_param) {
case PhysicsServer::SPACE_PARAM_CONTACT_RECYCLE_RADIUS: case PhysicsServer3D::SPACE_PARAM_CONTACT_RECYCLE_RADIUS:
case PhysicsServer::SPACE_PARAM_CONTACT_MAX_SEPARATION: case PhysicsServer3D::SPACE_PARAM_CONTACT_MAX_SEPARATION:
case PhysicsServer::SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION: case PhysicsServer3D::SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION:
case PhysicsServer::SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD: case PhysicsServer3D::SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD:
case PhysicsServer::SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD: case PhysicsServer3D::SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD:
case PhysicsServer::SPACE_PARAM_BODY_TIME_TO_SLEEP: case PhysicsServer3D::SPACE_PARAM_BODY_TIME_TO_SLEEP:
case PhysicsServer::SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO: case PhysicsServer3D::SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO:
case PhysicsServer::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS: case PhysicsServer3D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
default: default:
WARN_PRINT("The SpaceBullet doesn't support this get parameter (" + itos(p_param) + "), 0 is returned."); WARN_PRINT("The SpaceBullet doesn't support this get parameter (" + itos(p_param) + "), 0 is returned.");
return 0.f; return 0.f;
@ -891,7 +891,7 @@ static Ref<StandardMaterial3D> red_mat;
static Ref<StandardMaterial3D> blue_mat; static Ref<StandardMaterial3D> blue_mat;
#endif #endif
bool SpaceBullet::test_body_motion(RigidBodyBullet *p_body, const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia, PhysicsServer::MotionResult *r_result, bool p_exclude_raycast_shapes) { bool SpaceBullet::test_body_motion(RigidBodyBullet *p_body, const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia, PhysicsServer3D::MotionResult *r_result, bool p_exclude_raycast_shapes) {
#if debug_test_motion #if debug_test_motion
/// Yes I know this is not good, but I've used it as fast debugging hack. /// Yes I know this is not good, but I've used it as fast debugging hack.
@ -1042,7 +1042,7 @@ bool SpaceBullet::test_body_motion(RigidBodyBullet *p_body, const Transform &p_f
return has_penetration; return has_penetration;
} }
int SpaceBullet::test_ray_separation(RigidBodyBullet *p_body, const Transform &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, PhysicsServer::SeparationResult *r_results, int p_result_max, float p_margin) { int SpaceBullet::test_ray_separation(RigidBodyBullet *p_body, const Transform &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, PhysicsServer3D::SeparationResult *r_results, int p_result_max, float p_margin) {
btTransform body_transform; btTransform body_transform;
G_TO_B(p_transform, body_transform); G_TO_B(p_transform, body_transform);
@ -1054,7 +1054,7 @@ int SpaceBullet::test_ray_separation(RigidBodyBullet *p_body, const Transform &p
int rays_found_this_round = 0; int rays_found_this_round = 0;
for (int t(RECOVERING_MOVEMENT_CYCLES); 0 < t; --t) { for (int t(RECOVERING_MOVEMENT_CYCLES); 0 < t; --t) {
PhysicsServer::SeparationResult *next_results = &r_results[rays_found]; PhysicsServer3D::SeparationResult *next_results = &r_results[rays_found];
rays_found_this_round = recover_from_penetration_ray(p_body, body_transform, RECOVERING_MOVEMENT_SCALE, p_infinite_inertia, p_result_max - rays_found, recover_motion, next_results); rays_found_this_round = recover_from_penetration_ray(p_body, body_transform, RECOVERING_MOVEMENT_SCALE, p_infinite_inertia, p_result_max - rays_found, recover_motion, next_results);
rays_found += rays_found_this_round; rays_found += rays_found_this_round;
@ -1333,7 +1333,7 @@ bool SpaceBullet::RFP_convex_world_test(const btConvexShape *p_shapeA, const btC
return false; return false;
} }
int SpaceBullet::add_separation_result(PhysicsServer::SeparationResult *r_result, const SpaceBullet::RecoverResult &p_recover_result, int p_shape_id, const btCollisionObject *p_other_object) const { int SpaceBullet::add_separation_result(PhysicsServer3D::SeparationResult *r_result, const SpaceBullet::RecoverResult &p_recover_result, int p_shape_id, const btCollisionObject *p_other_object) const {
// optimize results (ignore non-colliding) // optimize results (ignore non-colliding)
if (p_recover_result.penetration_distance < 0.0) { if (p_recover_result.penetration_distance < 0.0) {
@ -1355,7 +1355,7 @@ int SpaceBullet::add_separation_result(PhysicsServer::SeparationResult *r_result
} }
} }
int SpaceBullet::recover_from_penetration_ray(RigidBodyBullet *p_body, const btTransform &p_body_position, btScalar p_recover_movement_scale, bool p_infinite_inertia, int p_result_max, btVector3 &r_delta_recover_movement, PhysicsServer::SeparationResult *r_results) { int SpaceBullet::recover_from_penetration_ray(RigidBodyBullet *p_body, const btTransform &p_body_position, btScalar p_recover_movement_scale, bool p_infinite_inertia, int p_result_max, btVector3 &r_delta_recover_movement, PhysicsServer3D::SeparationResult *r_results) {
// Calculate the cumulative AABB of all shapes of the kinematic body // Calculate the cumulative AABB of all shapes of the kinematic body
btVector3 aabb_min, aabb_max; btVector3 aabb_min, aabb_max;

View File

@ -35,7 +35,7 @@
#include "core/vector.h" #include "core/vector.h"
#include "godot_result_callbacks.h" #include "godot_result_callbacks.h"
#include "rid_bullet.h" #include "rid_bullet.h"
#include "servers/physics_server.h" #include "servers/physics_server_3d.h"
#include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h> #include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h>
#include <BulletCollision/BroadphaseCollision/btOverlappingPairCache.h> #include <BulletCollision/BroadphaseCollision/btOverlappingPairCache.h>
@ -67,8 +67,8 @@ class btGjkEpaPenetrationDepthSolver;
extern ContactAddedCallback gContactAddedCallback; extern ContactAddedCallback gContactAddedCallback;
class BulletPhysicsDirectSpaceState : public PhysicsDirectSpaceState { class BulletPhysicsDirectSpaceState : public PhysicsDirectSpaceState3D {
GDCLASS(BulletPhysicsDirectSpaceState, PhysicsDirectSpaceState); GDCLASS(BulletPhysicsDirectSpaceState, PhysicsDirectSpaceState3D);
private: private:
SpaceBullet *space; SpaceBullet *space;
@ -131,15 +131,15 @@ public:
/// @param p_param: /// @param p_param:
/// AREA_PARAM_GRAVITY to set the gravity magnitude of entire world /// AREA_PARAM_GRAVITY to set the gravity magnitude of entire world
/// AREA_PARAM_GRAVITY_VECTOR to set the gravity direction of entire world /// AREA_PARAM_GRAVITY_VECTOR to set the gravity direction of entire world
void set_param(PhysicsServer::AreaParameter p_param, const Variant &p_value); void set_param(PhysicsServer3D::AreaParameter p_param, const Variant &p_value);
/// Used to get some parameters to Bullet world /// Used to get some parameters to Bullet world
/// @param p_param: /// @param p_param:
/// AREA_PARAM_GRAVITY to get the gravity magnitude of entire world /// AREA_PARAM_GRAVITY to get the gravity magnitude of entire world
/// AREA_PARAM_GRAVITY_VECTOR to get the gravity direction of entire world /// AREA_PARAM_GRAVITY_VECTOR to get the gravity direction of entire world
Variant get_param(PhysicsServer::AreaParameter p_param); Variant get_param(PhysicsServer3D::AreaParameter p_param);
void set_param(PhysicsServer::SpaceParameter p_param, real_t p_value); void set_param(PhysicsServer3D::SpaceParameter p_param, real_t p_value);
real_t get_param(PhysicsServer::SpaceParameter p_param); real_t get_param(PhysicsServer3D::SpaceParameter p_param);
void add_area(AreaBullet *p_area); void add_area(AreaBullet *p_area);
void remove_area(AreaBullet *p_area); void remove_area(AreaBullet *p_area);
@ -177,8 +177,8 @@ public:
void update_gravity(); void update_gravity();
bool test_body_motion(RigidBodyBullet *p_body, const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia, PhysicsServer::MotionResult *r_result, bool p_exclude_raycast_shapes); bool test_body_motion(RigidBodyBullet *p_body, const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia, PhysicsServer3D::MotionResult *r_result, bool p_exclude_raycast_shapes);
int test_ray_separation(RigidBodyBullet *p_body, const Transform &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, PhysicsServer::SeparationResult *r_results, int p_result_max, float p_margin); int test_ray_separation(RigidBodyBullet *p_body, const Transform &p_transform, bool p_infinite_inertia, Vector3 &r_recover_motion, PhysicsServer3D::SeparationResult *r_results, int p_result_max, float p_margin);
private: private:
void create_empty_world(bool p_create_soft_world); void create_empty_world(bool p_create_soft_world);
@ -213,7 +213,7 @@ private:
/// Using this we leave Bullet to select the best algorithm, For example GJK in case we have Convex Convex, or a Bullet accelerated algorithm /// Using this we leave Bullet to select the best algorithm, For example GJK in case we have Convex Convex, or a Bullet accelerated algorithm
bool RFP_convex_world_test(const btConvexShape *p_shapeA, const btCollisionShape *p_shapeB, btCollisionObject *p_objectA, btCollisionObject *p_objectB, int p_shapeId_A, int p_shapeId_B, const btTransform &p_transformA, const btTransform &p_transformB, btScalar p_recover_movement_scale, btVector3 &r_delta_recover_movement, RecoverResult *r_recover_result = NULL); bool RFP_convex_world_test(const btConvexShape *p_shapeA, const btCollisionShape *p_shapeB, btCollisionObject *p_objectA, btCollisionObject *p_objectB, int p_shapeId_A, int p_shapeId_B, const btTransform &p_transformA, const btTransform &p_transformB, btScalar p_recover_movement_scale, btVector3 &r_delta_recover_movement, RecoverResult *r_recover_result = NULL);
int add_separation_result(PhysicsServer::SeparationResult *r_results, const SpaceBullet::RecoverResult &p_recover_result, int p_shape_id, const btCollisionObject *p_other_object) const; int add_separation_result(PhysicsServer3D::SeparationResult *r_results, const SpaceBullet::RecoverResult &p_recover_result, int p_shape_id, const btCollisionObject *p_other_object) const;
int recover_from_penetration_ray(RigidBodyBullet *p_body, const btTransform &p_body_position, btScalar p_recover_movement_scale, bool p_infinite_inertia, int p_result_max, btVector3 &r_delta_recover_movement, PhysicsServer::SeparationResult *r_results); int recover_from_penetration_ray(RigidBodyBullet *p_body, const btTransform &p_body_position, btScalar p_recover_movement_scale, bool p_infinite_inertia, int p_result_max, btVector3 &r_delta_recover_movement, PhysicsServer3D::SeparationResult *r_results);
}; };
#endif #endif

View File

@ -43,16 +43,16 @@ void CSGShape3D::set_use_collision(bool p_enable) {
if (use_collision) { if (use_collision) {
root_collision_shape.instance(); root_collision_shape.instance();
root_collision_instance = PhysicsServer::get_singleton()->body_create(PhysicsServer::BODY_MODE_STATIC); root_collision_instance = PhysicsServer3D::get_singleton()->body_create(PhysicsServer3D::BODY_MODE_STATIC);
PhysicsServer::get_singleton()->body_set_state(root_collision_instance, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer3D::get_singleton()->body_set_state(root_collision_instance, PhysicsServer3D::BODY_STATE_TRANSFORM, get_global_transform());
PhysicsServer::get_singleton()->body_add_shape(root_collision_instance, root_collision_shape->get_rid()); PhysicsServer3D::get_singleton()->body_add_shape(root_collision_instance, root_collision_shape->get_rid());
PhysicsServer::get_singleton()->body_set_space(root_collision_instance, get_world()->get_space()); PhysicsServer3D::get_singleton()->body_set_space(root_collision_instance, get_world()->get_space());
PhysicsServer::get_singleton()->body_attach_object_instance_id(root_collision_instance, get_instance_id()); PhysicsServer3D::get_singleton()->body_attach_object_instance_id(root_collision_instance, get_instance_id());
set_collision_layer(collision_layer); set_collision_layer(collision_layer);
set_collision_mask(collision_mask); set_collision_mask(collision_mask);
_make_dirty(); //force update _make_dirty(); //force update
} else { } else {
PhysicsServer::get_singleton()->free(root_collision_instance); PhysicsServer3D::get_singleton()->free(root_collision_instance);
root_collision_instance = RID(); root_collision_instance = RID();
root_collision_shape.unref(); root_collision_shape.unref();
} }
@ -66,7 +66,7 @@ bool CSGShape3D::is_using_collision() const {
void CSGShape3D::set_collision_layer(uint32_t p_layer) { void CSGShape3D::set_collision_layer(uint32_t p_layer) {
collision_layer = p_layer; collision_layer = p_layer;
if (root_collision_instance.is_valid()) { if (root_collision_instance.is_valid()) {
PhysicsServer::get_singleton()->body_set_collision_layer(root_collision_instance, p_layer); PhysicsServer3D::get_singleton()->body_set_collision_layer(root_collision_instance, p_layer);
} }
} }
@ -79,7 +79,7 @@ void CSGShape3D::set_collision_mask(uint32_t p_mask) {
collision_mask = p_mask; collision_mask = p_mask;
if (root_collision_instance.is_valid()) { if (root_collision_instance.is_valid()) {
PhysicsServer::get_singleton()->body_set_collision_mask(root_collision_instance, p_mask); PhysicsServer3D::get_singleton()->body_set_collision_mask(root_collision_instance, p_mask);
} }
} }
@ -506,11 +506,11 @@ void CSGShape3D::_notification(int p_what) {
if (use_collision && is_root_shape()) { if (use_collision && is_root_shape()) {
root_collision_shape.instance(); root_collision_shape.instance();
root_collision_instance = PhysicsServer::get_singleton()->body_create(PhysicsServer::BODY_MODE_STATIC); root_collision_instance = PhysicsServer3D::get_singleton()->body_create(PhysicsServer3D::BODY_MODE_STATIC);
PhysicsServer::get_singleton()->body_set_state(root_collision_instance, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer3D::get_singleton()->body_set_state(root_collision_instance, PhysicsServer3D::BODY_STATE_TRANSFORM, get_global_transform());
PhysicsServer::get_singleton()->body_add_shape(root_collision_instance, root_collision_shape->get_rid()); PhysicsServer3D::get_singleton()->body_add_shape(root_collision_instance, root_collision_shape->get_rid());
PhysicsServer::get_singleton()->body_set_space(root_collision_instance, get_world()->get_space()); PhysicsServer3D::get_singleton()->body_set_space(root_collision_instance, get_world()->get_space());
PhysicsServer::get_singleton()->body_attach_object_instance_id(root_collision_instance, get_instance_id()); PhysicsServer3D::get_singleton()->body_attach_object_instance_id(root_collision_instance, get_instance_id());
set_collision_layer(collision_layer); set_collision_layer(collision_layer);
set_collision_mask(collision_mask); set_collision_mask(collision_mask);
} }
@ -539,7 +539,7 @@ void CSGShape3D::_notification(int p_what) {
parent = NULL; parent = NULL;
if (use_collision && is_root_shape() && root_collision_instance.is_valid()) { if (use_collision && is_root_shape() && root_collision_instance.is_valid()) {
PhysicsServer::get_singleton()->free(root_collision_instance); PhysicsServer3D::get_singleton()->free(root_collision_instance);
root_collision_instance = RID(); root_collision_instance = RID();
root_collision_shape.unref(); root_collision_shape.unref();
} }

View File

@ -31,7 +31,7 @@
#include "arvr_interface_gdnative.h" #include "arvr_interface_gdnative.h"
#include "core/input/input_filter.h" #include "core/input/input_filter.h"
#include "servers/arvr/arvr_positional_tracker.h" #include "servers/arvr/arvr_positional_tracker.h"
#include "servers/visual/visual_server_globals.h" #include "servers/rendering/rendering_server_globals.h"
void ARVRInterfaceGDNative::_bind_methods() { void ARVRInterfaceGDNative::_bind_methods() {
ADD_PROPERTY_DEFAULT("interface_is_initialized", false); ADD_PROPERTY_DEFAULT("interface_is_initialized", false);
@ -292,7 +292,7 @@ void GDAPI godot_arvr_blit(godot_int p_eye, godot_rid *p_render_target, godot_re
#warning this needs to be redone #warning this needs to be redone
#endif #endif
#if 0 #if 0
VSG::rasterizer->blit_render_target_to_screen(*render_target, screen_rect, 0); RSG::rasterizer->blit_render_target_to_screen(*render_target, screen_rect, 0);
#endif #endif
} }
@ -302,13 +302,13 @@ godot_int GDAPI godot_arvr_get_texid(godot_rid *p_render_target) {
#if 0 #if 0
RID *render_target = (RID *)p_render_target; RID *render_target = (RID *)p_render_target;
RID eye_texture = VSG::storage->render_target_get_texture(*render_target); RID eye_texture = RSG::storage->render_target_get_texture(*render_target);
#endif #endif
#ifndef _MSC_VER #ifndef _MSC_VER
#warning need to obtain this ID again #warning need to obtain this ID again
#endif #endif
uint32_t texid = 0; //VS::get_singleton()->texture_get_texid(eye_texture); uint32_t texid = 0; //RS::get_singleton()->texture_get_texid(eye_texture);
return texid; return texid;
} }

View File

@ -114,7 +114,7 @@
void GdNavigationServer::MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1, T_2 D_2, T_3 D_3) void GdNavigationServer::MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1, T_2 D_2, T_3 D_3)
GdNavigationServer::GdNavigationServer() : GdNavigationServer::GdNavigationServer() :
NavigationServer(), NavigationServer3D(),
active(true) { active(true) {
} }

View File

@ -33,7 +33,7 @@
#include "core/rid.h" #include "core/rid.h"
#include "core/rid_owner.h" #include "core/rid_owner.h"
#include "servers/navigation_server.h" #include "servers/navigation_server_3d.h"
#include "nav_map.h" #include "nav_map.h"
#include "nav_region.h" #include "nav_region.h"
@ -67,7 +67,7 @@ struct SetCommand {
virtual void exec(GdNavigationServer *server) = 0; virtual void exec(GdNavigationServer *server) = 0;
}; };
class GdNavigationServer : public NavigationServer { class GdNavigationServer : public NavigationServer3D {
Mutex commands_mutex; Mutex commands_mutex;
/// Mutex used to make any operation threadsafe. /// Mutex used to make any operation threadsafe.
Mutex operations_mutex; Mutex operations_mutex;

View File

@ -32,7 +32,7 @@
#include "core/engine.h" #include "core/engine.h"
#include "gd_navigation_server.h" #include "gd_navigation_server.h"
#include "servers/navigation_server.h" #include "servers/navigation_server_3d.h"
#ifndef _3D_DISABLED #ifndef _3D_DISABLED
#include "navigation_mesh_generator.h" #include "navigation_mesh_generator.h"
@ -50,12 +50,12 @@
NavigationMeshGenerator *_nav_mesh_generator = NULL; NavigationMeshGenerator *_nav_mesh_generator = NULL;
#endif #endif
NavigationServer *new_server() { NavigationServer3D *new_server() {
return memnew(GdNavigationServer); return memnew(GdNavigationServer);
} }
void register_gdnavigation_types() { void register_gdnavigation_types() {
NavigationServerManager::set_default_server(new_server); NavigationServer3DManager::set_default_server(new_server);
#ifndef _3D_DISABLED #ifndef _3D_DISABLED
_nav_mesh_generator = memnew(NavigationMeshGenerator); _nav_mesh_generator = memnew(NavigationMeshGenerator);

View File

@ -30,7 +30,7 @@
#include "register_types.h" #include "register_types.h"
#include "servers/visual/rendering_device.h" #include "servers/rendering/rendering_device.h"
#include <SPIRV/GlslangToSpv.h> #include <SPIRV/GlslangToSpv.h>
#include <glslang/Include/Types.h> #include <glslang/Include/Types.h>

View File

@ -36,8 +36,8 @@
#include "scene/resources/mesh_library.h" #include "scene/resources/mesh_library.h"
#include "scene/resources/surface_tool.h" #include "scene/resources/surface_tool.h"
#include "scene/scene_string_names.h" #include "scene/scene_string_names.h"
#include "servers/navigation_server.h" #include "servers/navigation_server_3d.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
bool GridMap::_set(const StringName &p_name, const Variant &p_value) { bool GridMap::_set(const StringName &p_name, const Variant &p_value) {
@ -76,12 +76,12 @@ bool GridMap::_set(const StringName &p_name, const Variant &p_value) {
BakedMesh bm; BakedMesh bm;
bm.mesh = meshes[i]; bm.mesh = meshes[i];
ERR_CONTINUE(!bm.mesh.is_valid()); ERR_CONTINUE(!bm.mesh.is_valid());
bm.instance = VS::get_singleton()->instance_create(); bm.instance = RS::get_singleton()->instance_create();
VS::get_singleton()->get_singleton()->instance_set_base(bm.instance, bm.mesh->get_rid()); RS::get_singleton()->get_singleton()->instance_set_base(bm.instance, bm.mesh->get_rid());
VS::get_singleton()->instance_attach_object_instance_id(bm.instance, get_instance_id()); RS::get_singleton()->instance_attach_object_instance_id(bm.instance, get_instance_id());
if (is_inside_tree()) { if (is_inside_tree()) {
VS::get_singleton()->instance_set_scenario(bm.instance, get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(bm.instance, get_world()->get_scenario());
VS::get_singleton()->instance_set_transform(bm.instance, get_global_transform()); RS::get_singleton()->instance_set_transform(bm.instance, get_global_transform());
} }
baked_meshes.push_back(bm); baked_meshes.push_back(bm);
} }
@ -306,17 +306,17 @@ void GridMap::set_cell_item(int p_x, int p_y, int p_z, int p_item, int p_rot) {
//create octant because it does not exist //create octant because it does not exist
Octant *g = memnew(Octant); Octant *g = memnew(Octant);
g->dirty = true; g->dirty = true;
g->static_body = PhysicsServer::get_singleton()->body_create(PhysicsServer::BODY_MODE_STATIC); g->static_body = PhysicsServer3D::get_singleton()->body_create(PhysicsServer3D::BODY_MODE_STATIC);
PhysicsServer::get_singleton()->body_attach_object_instance_id(g->static_body, get_instance_id()); PhysicsServer3D::get_singleton()->body_attach_object_instance_id(g->static_body, get_instance_id());
PhysicsServer::get_singleton()->body_set_collision_layer(g->static_body, collision_layer); PhysicsServer3D::get_singleton()->body_set_collision_layer(g->static_body, collision_layer);
PhysicsServer::get_singleton()->body_set_collision_mask(g->static_body, collision_mask); PhysicsServer3D::get_singleton()->body_set_collision_mask(g->static_body, collision_mask);
SceneTree *st = SceneTree::get_singleton(); SceneTree *st = SceneTree::get_singleton();
if (st && st->is_debugging_collisions_hint()) { if (st && st->is_debugging_collisions_hint()) {
g->collision_debug = VisualServer::get_singleton()->mesh_create(); g->collision_debug = RenderingServer::get_singleton()->mesh_create();
g->collision_debug_instance = VisualServer::get_singleton()->instance_create(); g->collision_debug_instance = RenderingServer::get_singleton()->instance_create();
VisualServer::get_singleton()->instance_set_base(g->collision_debug_instance, g->collision_debug); RenderingServer::get_singleton()->instance_set_base(g->collision_debug_instance, g->collision_debug);
} }
octant_map[octantkey] = g; octant_map[octantkey] = g;
@ -392,14 +392,14 @@ void GridMap::_octant_transform(const OctantKey &p_key) {
ERR_FAIL_COND(!octant_map.has(p_key)); ERR_FAIL_COND(!octant_map.has(p_key));
Octant &g = *octant_map[p_key]; Octant &g = *octant_map[p_key];
PhysicsServer::get_singleton()->body_set_state(g.static_body, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer3D::get_singleton()->body_set_state(g.static_body, PhysicsServer3D::BODY_STATE_TRANSFORM, get_global_transform());
if (g.collision_debug_instance.is_valid()) { if (g.collision_debug_instance.is_valid()) {
VS::get_singleton()->instance_set_transform(g.collision_debug_instance, get_global_transform()); RS::get_singleton()->instance_set_transform(g.collision_debug_instance, get_global_transform());
} }
for (int i = 0; i < g.multimesh_instances.size(); i++) { for (int i = 0; i < g.multimesh_instances.size(); i++) {
VS::get_singleton()->instance_set_transform(g.multimesh_instances[i].instance, get_global_transform()); RS::get_singleton()->instance_set_transform(g.multimesh_instances[i].instance, get_global_transform());
} }
} }
@ -410,17 +410,17 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
return false; return false;
//erase body shapes //erase body shapes
PhysicsServer::get_singleton()->body_clear_shapes(g.static_body); PhysicsServer3D::get_singleton()->body_clear_shapes(g.static_body);
//erase body shapes debug //erase body shapes debug
if (g.collision_debug.is_valid()) { if (g.collision_debug.is_valid()) {
VS::get_singleton()->mesh_clear(g.collision_debug); RS::get_singleton()->mesh_clear(g.collision_debug);
} }
//erase navigation //erase navigation
for (Map<IndexKey, Octant::NavMesh>::Element *E = g.navmesh_ids.front(); E; E = E->next()) { for (Map<IndexKey, Octant::NavMesh>::Element *E = g.navmesh_ids.front(); E; E = E->next()) {
NavigationServer::get_singleton()->free(E->get().region); NavigationServer3D::get_singleton()->free(E->get().region);
} }
g.navmesh_ids.clear(); g.navmesh_ids.clear();
@ -428,8 +428,8 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
for (int i = 0; i < g.multimesh_instances.size(); i++) { for (int i = 0; i < g.multimesh_instances.size(); i++) {
VS::get_singleton()->free(g.multimesh_instances[i].instance); RS::get_singleton()->free(g.multimesh_instances[i].instance);
VS::get_singleton()->free(g.multimesh_instances[i].multimesh); RS::get_singleton()->free(g.multimesh_instances[i].multimesh);
} }
g.multimesh_instances.clear(); g.multimesh_instances.clear();
@ -484,7 +484,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
// add the item's shape // add the item's shape
if (!shapes[i].shape.is_valid()) if (!shapes[i].shape.is_valid())
continue; continue;
PhysicsServer::get_singleton()->body_add_shape(g.static_body, shapes[i].shape->get_rid(), xform * shapes[i].local_transform); PhysicsServer3D::get_singleton()->body_add_shape(g.static_body, shapes[i].shape->get_rid(), xform * shapes[i].local_transform);
if (g.collision_debug.is_valid()) { if (g.collision_debug.is_valid()) {
shapes.write[i].shape->add_vertices_to_array(col_debug, xform * shapes[i].local_transform); shapes.write[i].shape->add_vertices_to_array(col_debug, xform * shapes[i].local_transform);
} }
@ -497,10 +497,10 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
nm.xform = xform * mesh_library->get_item_navmesh_transform(c.item); nm.xform = xform * mesh_library->get_item_navmesh_transform(c.item);
if (navigation) { if (navigation) {
RID region = NavigationServer::get_singleton()->region_create(); RID region = NavigationServer3D::get_singleton()->region_create();
NavigationServer::get_singleton()->region_set_navmesh(region, navmesh); NavigationServer3D::get_singleton()->region_set_navmesh(region, navmesh);
NavigationServer::get_singleton()->region_set_transform(region, navigation->get_global_transform() * nm.xform); NavigationServer3D::get_singleton()->region_set_transform(region, navigation->get_global_transform() * nm.xform);
NavigationServer::get_singleton()->region_set_map(region, navigation->get_rid()); NavigationServer3D::get_singleton()->region_set_map(region, navigation->get_rid());
nm.region = region; nm.region = region;
} }
g.navmesh_ids[E->get()] = nm; g.navmesh_ids[E->get()] = nm;
@ -513,13 +513,13 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
for (Map<int, List<Pair<Transform, IndexKey>>>::Element *E = multimesh_items.front(); E; E = E->next()) { for (Map<int, List<Pair<Transform, IndexKey>>>::Element *E = multimesh_items.front(); E; E = E->next()) {
Octant::MultimeshInstance mmi; Octant::MultimeshInstance mmi;
RID mm = VS::get_singleton()->multimesh_create(); RID mm = RS::get_singleton()->multimesh_create();
VS::get_singleton()->multimesh_allocate(mm, E->get().size(), VS::MULTIMESH_TRANSFORM_3D); RS::get_singleton()->multimesh_allocate(mm, E->get().size(), RS::MULTIMESH_TRANSFORM_3D);
VS::get_singleton()->multimesh_set_mesh(mm, mesh_library->get_item_mesh(E->key())->get_rid()); RS::get_singleton()->multimesh_set_mesh(mm, mesh_library->get_item_mesh(E->key())->get_rid());
int idx = 0; int idx = 0;
for (List<Pair<Transform, IndexKey>>::Element *F = E->get().front(); F; F = F->next()) { for (List<Pair<Transform, IndexKey>>::Element *F = E->get().front(); F; F = F->next()) {
VS::get_singleton()->multimesh_instance_set_transform(mm, idx, F->get().first); RS::get_singleton()->multimesh_instance_set_transform(mm, idx, F->get().first);
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
Octant::MultimeshInstance::Item it; Octant::MultimeshInstance::Item it;
@ -532,12 +532,12 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
idx++; idx++;
} }
RID instance = VS::get_singleton()->instance_create(); RID instance = RS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(instance, mm); RS::get_singleton()->instance_set_base(instance, mm);
if (is_inside_tree()) { if (is_inside_tree()) {
VS::get_singleton()->instance_set_scenario(instance, get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(instance, get_world()->get_scenario());
VS::get_singleton()->instance_set_transform(instance, get_global_transform()); RS::get_singleton()->instance_set_transform(instance, get_global_transform());
} }
mmi.multimesh = mm; mmi.multimesh = mm;
@ -550,13 +550,13 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
if (col_debug.size()) { if (col_debug.size()) {
Array arr; Array arr;
arr.resize(VS::ARRAY_MAX); arr.resize(RS::ARRAY_MAX);
arr[VS::ARRAY_VERTEX] = col_debug; arr[RS::ARRAY_VERTEX] = col_debug;
VS::get_singleton()->mesh_add_surface_from_arrays(g.collision_debug, VS::PRIMITIVE_LINES, arr); RS::get_singleton()->mesh_add_surface_from_arrays(g.collision_debug, RS::PRIMITIVE_LINES, arr);
SceneTree *st = SceneTree::get_singleton(); SceneTree *st = SceneTree::get_singleton();
if (st) { if (st) {
VS::get_singleton()->mesh_surface_set_material(g.collision_debug, 0, st->get_debug_collision_material()->get_rid()); RS::get_singleton()->mesh_surface_set_material(g.collision_debug, 0, st->get_debug_collision_material()->get_rid());
} }
} }
@ -567,8 +567,8 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
void GridMap::_reset_physic_bodies_collision_filters() { void GridMap::_reset_physic_bodies_collision_filters() {
for (Map<OctantKey, Octant *>::Element *E = octant_map.front(); E; E = E->next()) { for (Map<OctantKey, Octant *>::Element *E = octant_map.front(); E; E = E->next()) {
PhysicsServer::get_singleton()->body_set_collision_layer(E->get()->static_body, collision_layer); PhysicsServer3D::get_singleton()->body_set_collision_layer(E->get()->static_body, collision_layer);
PhysicsServer::get_singleton()->body_set_collision_mask(E->get()->static_body, collision_mask); PhysicsServer3D::get_singleton()->body_set_collision_mask(E->get()->static_body, collision_mask);
} }
} }
@ -576,17 +576,17 @@ void GridMap::_octant_enter_world(const OctantKey &p_key) {
ERR_FAIL_COND(!octant_map.has(p_key)); ERR_FAIL_COND(!octant_map.has(p_key));
Octant &g = *octant_map[p_key]; Octant &g = *octant_map[p_key];
PhysicsServer::get_singleton()->body_set_state(g.static_body, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer3D::get_singleton()->body_set_state(g.static_body, PhysicsServer3D::BODY_STATE_TRANSFORM, get_global_transform());
PhysicsServer::get_singleton()->body_set_space(g.static_body, get_world()->get_space()); PhysicsServer3D::get_singleton()->body_set_space(g.static_body, get_world()->get_space());
if (g.collision_debug_instance.is_valid()) { if (g.collision_debug_instance.is_valid()) {
VS::get_singleton()->instance_set_scenario(g.collision_debug_instance, get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(g.collision_debug_instance, get_world()->get_scenario());
VS::get_singleton()->instance_set_transform(g.collision_debug_instance, get_global_transform()); RS::get_singleton()->instance_set_transform(g.collision_debug_instance, get_global_transform());
} }
for (int i = 0; i < g.multimesh_instances.size(); i++) { for (int i = 0; i < g.multimesh_instances.size(); i++) {
VS::get_singleton()->instance_set_scenario(g.multimesh_instances[i].instance, get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(g.multimesh_instances[i].instance, get_world()->get_scenario());
VS::get_singleton()->instance_set_transform(g.multimesh_instances[i].instance, get_global_transform()); RS::get_singleton()->instance_set_transform(g.multimesh_instances[i].instance, get_global_transform());
} }
if (navigation && mesh_library.is_valid()) { if (navigation && mesh_library.is_valid()) {
@ -595,10 +595,10 @@ void GridMap::_octant_enter_world(const OctantKey &p_key) {
if (cell_map.has(F->key()) && F->get().region.is_valid() == false) { if (cell_map.has(F->key()) && F->get().region.is_valid() == false) {
Ref<NavigationMesh> nm = mesh_library->get_item_navmesh(cell_map[F->key()].item); Ref<NavigationMesh> nm = mesh_library->get_item_navmesh(cell_map[F->key()].item);
if (nm.is_valid()) { if (nm.is_valid()) {
RID region = NavigationServer::get_singleton()->region_create(); RID region = NavigationServer3D::get_singleton()->region_create();
NavigationServer::get_singleton()->region_set_navmesh(region, nm); NavigationServer3D::get_singleton()->region_set_navmesh(region, nm);
NavigationServer::get_singleton()->region_set_transform(region, navigation->get_global_transform() * F->get().xform); NavigationServer3D::get_singleton()->region_set_transform(region, navigation->get_global_transform() * F->get().xform);
NavigationServer::get_singleton()->region_set_map(region, navigation->get_rid()); NavigationServer3D::get_singleton()->region_set_map(region, navigation->get_rid());
F->get().region = region; F->get().region = region;
} }
} }
@ -610,23 +610,23 @@ void GridMap::_octant_exit_world(const OctantKey &p_key) {
ERR_FAIL_COND(!octant_map.has(p_key)); ERR_FAIL_COND(!octant_map.has(p_key));
Octant &g = *octant_map[p_key]; Octant &g = *octant_map[p_key];
PhysicsServer::get_singleton()->body_set_state(g.static_body, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer3D::get_singleton()->body_set_state(g.static_body, PhysicsServer3D::BODY_STATE_TRANSFORM, get_global_transform());
PhysicsServer::get_singleton()->body_set_space(g.static_body, RID()); PhysicsServer3D::get_singleton()->body_set_space(g.static_body, RID());
if (g.collision_debug_instance.is_valid()) { if (g.collision_debug_instance.is_valid()) {
VS::get_singleton()->instance_set_scenario(g.collision_debug_instance, RID()); RS::get_singleton()->instance_set_scenario(g.collision_debug_instance, RID());
} }
for (int i = 0; i < g.multimesh_instances.size(); i++) { for (int i = 0; i < g.multimesh_instances.size(); i++) {
VS::get_singleton()->instance_set_scenario(g.multimesh_instances[i].instance, RID()); RS::get_singleton()->instance_set_scenario(g.multimesh_instances[i].instance, RID());
} }
if (navigation) { if (navigation) {
for (Map<IndexKey, Octant::NavMesh>::Element *F = g.navmesh_ids.front(); F; F = F->next()) { for (Map<IndexKey, Octant::NavMesh>::Element *F = g.navmesh_ids.front(); F; F = F->next()) {
if (F->get().region.is_valid()) { if (F->get().region.is_valid()) {
NavigationServer::get_singleton()->free(F->get().region); NavigationServer3D::get_singleton()->free(F->get().region);
F->get().region = RID(); F->get().region = RID();
} }
} }
@ -639,15 +639,15 @@ void GridMap::_octant_clean_up(const OctantKey &p_key) {
Octant &g = *octant_map[p_key]; Octant &g = *octant_map[p_key];
if (g.collision_debug.is_valid()) if (g.collision_debug.is_valid())
VS::get_singleton()->free(g.collision_debug); RS::get_singleton()->free(g.collision_debug);
if (g.collision_debug_instance.is_valid()) if (g.collision_debug_instance.is_valid())
VS::get_singleton()->free(g.collision_debug_instance); RS::get_singleton()->free(g.collision_debug_instance);
PhysicsServer::get_singleton()->free(g.static_body); PhysicsServer3D::get_singleton()->free(g.static_body);
// Erase navigation // Erase navigation
for (Map<IndexKey, Octant::NavMesh>::Element *E = g.navmesh_ids.front(); E; E = E->next()) { for (Map<IndexKey, Octant::NavMesh>::Element *E = g.navmesh_ids.front(); E; E = E->next()) {
NavigationServer::get_singleton()->free(E->get().region); NavigationServer3D::get_singleton()->free(E->get().region);
} }
g.navmesh_ids.clear(); g.navmesh_ids.clear();
@ -655,8 +655,8 @@ void GridMap::_octant_clean_up(const OctantKey &p_key) {
for (int i = 0; i < g.multimesh_instances.size(); i++) { for (int i = 0; i < g.multimesh_instances.size(); i++) {
VS::get_singleton()->free(g.multimesh_instances[i].instance); RS::get_singleton()->free(g.multimesh_instances[i].instance);
VS::get_singleton()->free(g.multimesh_instances[i].multimesh); RS::get_singleton()->free(g.multimesh_instances[i].multimesh);
} }
g.multimesh_instances.clear(); g.multimesh_instances.clear();
} }
@ -684,8 +684,8 @@ void GridMap::_notification(int p_what) {
} }
for (int i = 0; i < baked_meshes.size(); i++) { for (int i = 0; i < baked_meshes.size(); i++) {
VS::get_singleton()->instance_set_scenario(baked_meshes[i].instance, get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(baked_meshes[i].instance, get_world()->get_scenario());
VS::get_singleton()->instance_set_transform(baked_meshes[i].instance, get_global_transform()); RS::get_singleton()->instance_set_transform(baked_meshes[i].instance, get_global_transform());
} }
} break; } break;
@ -702,7 +702,7 @@ void GridMap::_notification(int p_what) {
last_transform = new_xform; last_transform = new_xform;
for (int i = 0; i < baked_meshes.size(); i++) { for (int i = 0; i < baked_meshes.size(); i++) {
VS::get_singleton()->instance_set_transform(baked_meshes[i].instance, get_global_transform()); RS::get_singleton()->instance_set_transform(baked_meshes[i].instance, get_global_transform());
} }
} break; } break;
@ -718,7 +718,7 @@ void GridMap::_notification(int p_what) {
//_update_octants_callback(); //_update_octants_callback();
//_update_area_instances(); //_update_area_instances();
for (int i = 0; i < baked_meshes.size(); i++) { for (int i = 0; i < baked_meshes.size(); i++) {
VS::get_singleton()->instance_set_scenario(baked_meshes[i].instance, RID()); RS::get_singleton()->instance_set_scenario(baked_meshes[i].instance, RID());
} }
} break; } break;
@ -738,7 +738,7 @@ void GridMap::_update_visibility() {
Octant *octant = e->value(); Octant *octant = e->value();
for (int i = 0; i < octant->multimesh_instances.size(); i++) { for (int i = 0; i < octant->multimesh_instances.size(); i++) {
const Octant::MultimeshInstance &mi = octant->multimesh_instances[i]; const Octant::MultimeshInstance &mi = octant->multimesh_instances[i];
VS::get_singleton()->instance_set_visible(mi.instance, is_visible()); RS::get_singleton()->instance_set_visible(mi.instance, is_visible());
} }
} }
} }
@ -975,7 +975,7 @@ Vector3 GridMap::_get_offset() const {
void GridMap::clear_baked_meshes() { void GridMap::clear_baked_meshes() {
for (int i = 0; i < baked_meshes.size(); i++) { for (int i = 0; i < baked_meshes.size(); i++) {
VS::get_singleton()->free(baked_meshes[i].instance); RS::get_singleton()->free(baked_meshes[i].instance);
} }
baked_meshes.clear(); baked_meshes.clear();
@ -1050,12 +1050,12 @@ void GridMap::make_baked_meshes(bool p_gen_lightmap_uv, float p_lightmap_uv_texe
BakedMesh bm; BakedMesh bm;
bm.mesh = mesh; bm.mesh = mesh;
bm.instance = VS::get_singleton()->instance_create(); bm.instance = RS::get_singleton()->instance_create();
VS::get_singleton()->get_singleton()->instance_set_base(bm.instance, bm.mesh->get_rid()); RS::get_singleton()->get_singleton()->instance_set_base(bm.instance, bm.mesh->get_rid());
VS::get_singleton()->instance_attach_object_instance_id(bm.instance, get_instance_id()); RS::get_singleton()->instance_attach_object_instance_id(bm.instance, get_instance_id());
if (is_inside_tree()) { if (is_inside_tree()) {
VS::get_singleton()->instance_set_scenario(bm.instance, get_world()->get_scenario()); RS::get_singleton()->instance_set_scenario(bm.instance, get_world()->get_scenario());
VS::get_singleton()->instance_set_transform(bm.instance, get_global_transform()); RS::get_singleton()->instance_set_transform(bm.instance, get_global_transform());
} }
if (p_gen_lightmap_uv) { if (p_gen_lightmap_uv) {

View File

@ -166,10 +166,10 @@ class GridMap : public Node3D {
struct BakeLight { struct BakeLight {
VS::LightType type; RS::LightType type;
Vector3 pos; Vector3 pos;
Vector3 dir; Vector3 dir;
float param[VS::LIGHT_PARAM_MAX]; float param[RS::LIGHT_PARAM_MAX];
}; };
_FORCE_INLINE_ Vector3 _octant_get_offset(const OctantKey &p_key) const { _FORCE_INLINE_ Vector3 _octant_get_offset(const OctantKey &p_key) const {

View File

@ -281,8 +281,8 @@ void GridMapEditor::_update_cursor_transform() {
cursor_transform = node->get_global_transform() * cursor_transform; cursor_transform = node->get_global_transform() * cursor_transform;
if (cursor_instance.is_valid()) { if (cursor_instance.is_valid()) {
VisualServer::get_singleton()->instance_set_transform(cursor_instance, cursor_transform); RenderingServer::get_singleton()->instance_set_transform(cursor_instance, cursor_transform);
VisualServer::get_singleton()->instance_set_visible(cursor_instance, cursor_visible); RenderingServer::get_singleton()->instance_set_visible(cursor_instance, cursor_visible);
} }
} }
@ -292,9 +292,9 @@ void GridMapEditor::_update_selection_transform() {
if (!selection.active) { if (!selection.active) {
VisualServer::get_singleton()->instance_set_transform(selection_instance, xf_zero); RenderingServer::get_singleton()->instance_set_transform(selection_instance, xf_zero);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->instance_set_transform(selection_level_instance[i], xf_zero); RenderingServer::get_singleton()->instance_set_transform(selection_level_instance[i], xf_zero);
} }
return; return;
} }
@ -303,11 +303,11 @@ void GridMapEditor::_update_selection_transform() {
xf.scale((Vector3(1, 1, 1) + (selection.end - selection.begin)) * node->get_cell_size()); xf.scale((Vector3(1, 1, 1) + (selection.end - selection.begin)) * node->get_cell_size());
xf.origin = selection.begin * node->get_cell_size(); xf.origin = selection.begin * node->get_cell_size();
VisualServer::get_singleton()->instance_set_transform(selection_instance, node->get_global_transform() * xf); RenderingServer::get_singleton()->instance_set_transform(selection_instance, node->get_global_transform() * xf);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (i != edit_axis || (edit_floor[edit_axis] < selection.begin[edit_axis]) || (edit_floor[edit_axis] > selection.end[edit_axis] + 1)) { if (i != edit_axis || (edit_floor[edit_axis] < selection.begin[edit_axis]) || (edit_floor[edit_axis] > selection.end[edit_axis] + 1)) {
VisualServer::get_singleton()->instance_set_transform(selection_level_instance[i], xf_zero); RenderingServer::get_singleton()->instance_set_transform(selection_level_instance[i], xf_zero);
} else { } else {
Vector3 scale = (selection.end - selection.begin + Vector3(1, 1, 1)); Vector3 scale = (selection.end - selection.begin + Vector3(1, 1, 1));
@ -322,7 +322,7 @@ void GridMapEditor::_update_selection_transform() {
xf2.basis.scale(scale); xf2.basis.scale(scale);
xf2.origin = pos; xf2.origin = pos;
VisualServer::get_singleton()->instance_set_transform(selection_level_instance[i], xf2); RenderingServer::get_singleton()->instance_set_transform(selection_level_instance[i], xf2);
} }
} }
} }
@ -416,7 +416,7 @@ bool GridMapEditor::do_input_action(Camera3D *p_camera, const Point2 &p_point, b
} }
} }
VS::get_singleton()->instance_set_transform(grid_instance[edit_axis], node->get_global_transform() * edit_grid_xform); RS::get_singleton()->instance_set_transform(grid_instance[edit_axis], node->get_global_transform() * edit_grid_xform);
if (cursor_instance.is_valid()) { if (cursor_instance.is_valid()) {
@ -528,7 +528,7 @@ void GridMapEditor::_clear_clipboard_data() {
for (List<ClipboardItem>::Element *E = clipboard_items.front(); E; E = E->next()) { for (List<ClipboardItem>::Element *E = clipboard_items.front(); E; E = E->next()) {
VisualServer::get_singleton()->free(E->get().instance); RenderingServer::get_singleton()->free(E->get().instance);
} }
clipboard_items.clear(); clipboard_items.clear();
@ -556,7 +556,7 @@ void GridMapEditor::_set_clipboard_data() {
item.cell_item = itm; item.cell_item = itm;
item.grid_offset = Vector3(i, j, k) - selection.begin; item.grid_offset = Vector3(i, j, k) - selection.begin;
item.orientation = node->get_cell_item_orientation(i, j, k); item.orientation = node->get_cell_item_orientation(i, j, k);
item.instance = VisualServer::get_singleton()->instance_create2(mesh->get_rid(), get_tree()->get_root()->get_world()->get_scenario()); item.instance = RenderingServer::get_singleton()->instance_create2(mesh->get_rid(), get_tree()->get_root()->get_world()->get_scenario());
clipboard_items.push_back(item); clipboard_items.push_back(item);
} }
@ -570,7 +570,7 @@ void GridMapEditor::_update_paste_indicator() {
Transform xf; Transform xf;
xf.basis.set_zero(); xf.basis.set_zero();
VisualServer::get_singleton()->instance_set_transform(paste_instance, xf); RenderingServer::get_singleton()->instance_set_transform(paste_instance, xf);
return; return;
} }
@ -584,7 +584,7 @@ void GridMapEditor::_update_paste_indicator() {
xf.basis = rot * xf.basis; xf.basis = rot * xf.basis;
xf.translate((-center * node->get_cell_size()) / scale); xf.translate((-center * node->get_cell_size()) / scale);
VisualServer::get_singleton()->instance_set_transform(paste_instance, node->get_global_transform() * xf); RenderingServer::get_singleton()->instance_set_transform(paste_instance, node->get_global_transform() * xf);
for (List<ClipboardItem>::Element *E = clipboard_items.front(); E; E = E->next()) { for (List<ClipboardItem>::Element *E = clipboard_items.front(); E; E = E->next()) {
@ -599,7 +599,7 @@ void GridMapEditor::_update_paste_indicator() {
item_rot.set_orthogonal_index(item.orientation); item_rot.set_orthogonal_index(item.orientation);
xf.basis = item_rot * xf.basis * node->get_cell_scale(); xf.basis = item_rot * xf.basis * node->get_cell_scale();
VisualServer::get_singleton()->instance_set_transform(item.instance, node->get_global_transform() * xf); RenderingServer::get_singleton()->instance_set_transform(item.instance, node->get_global_transform() * xf);
} }
} }
@ -969,11 +969,11 @@ void GridMapEditor::edit(GridMap *p_gridmap) {
if (!node) { if (!node) {
set_process(false); set_process(false);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->instance_set_visible(grid_instance[i], false); RenderingServer::get_singleton()->instance_set_visible(grid_instance[i], false);
} }
if (cursor_instance.is_valid()) { if (cursor_instance.is_valid()) {
VisualServer::get_singleton()->instance_set_visible(cursor_instance, false); RenderingServer::get_singleton()->instance_set_visible(cursor_instance, false);
} }
return; return;
@ -1011,7 +1011,7 @@ void GridMapEditor::update_grid() {
edit_grid_xform.basis = Basis(); edit_grid_xform.basis = Basis();
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->instance_set_visible(grid_instance[i], i == edit_axis); RenderingServer::get_singleton()->instance_set_visible(grid_instance[i], i == edit_axis);
} }
updating = true; updating = true;
@ -1023,7 +1023,7 @@ void GridMapEditor::_draw_grids(const Vector3 &cell_size) {
Vector3 edited_floor = node->has_meta("_editor_floor_") ? node->get_meta("_editor_floor_") : Variant(); Vector3 edited_floor = node->has_meta("_editor_floor_") ? node->get_meta("_editor_floor_") : Variant();
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VS::get_singleton()->mesh_clear(grid[i]); RS::get_singleton()->mesh_clear(grid[i]);
edit_floor[i] = edited_floor[i]; edit_floor[i] = edited_floor[i];
} }
@ -1065,11 +1065,11 @@ void GridMapEditor::_draw_grids(const Vector3 &cell_size) {
} }
Array d; Array d;
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
d[VS::ARRAY_VERTEX] = grid_points[i]; d[RS::ARRAY_VERTEX] = grid_points[i];
d[VS::ARRAY_COLOR] = grid_colors[i]; d[RS::ARRAY_COLOR] = grid_colors[i];
VisualServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], VisualServer::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], RenderingServer::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid());
} }
} }
@ -1082,13 +1082,13 @@ void GridMapEditor::_notification(int p_what) {
mesh_library_palette->connect("item_selected", callable_mp(this, &GridMapEditor::_item_selected_cbk)); mesh_library_palette->connect("item_selected", callable_mp(this, &GridMapEditor::_item_selected_cbk));
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
grid[i] = VS::get_singleton()->mesh_create(); grid[i] = RS::get_singleton()->mesh_create();
grid_instance[i] = VS::get_singleton()->instance_create2(grid[i], get_tree()->get_root()->get_world()->get_scenario()); grid_instance[i] = RS::get_singleton()->instance_create2(grid[i], get_tree()->get_root()->get_world()->get_scenario());
selection_level_instance[i] = VisualServer::get_singleton()->instance_create2(selection_level_mesh[i], get_tree()->get_root()->get_world()->get_scenario()); selection_level_instance[i] = RenderingServer::get_singleton()->instance_create2(selection_level_mesh[i], get_tree()->get_root()->get_world()->get_scenario());
} }
selection_instance = VisualServer::get_singleton()->instance_create2(selection_mesh, get_tree()->get_root()->get_world()->get_scenario()); selection_instance = RenderingServer::get_singleton()->instance_create2(selection_mesh, get_tree()->get_root()->get_world()->get_scenario());
paste_instance = VisualServer::get_singleton()->instance_create2(paste_mesh, get_tree()->get_root()->get_world()->get_scenario()); paste_instance = RenderingServer::get_singleton()->instance_create2(paste_mesh, get_tree()->get_root()->get_world()->get_scenario());
_update_selection_transform(); _update_selection_transform();
_update_paste_indicator(); _update_paste_indicator();
@ -1100,15 +1100,15 @@ void GridMapEditor::_notification(int p_what) {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VS::get_singleton()->free(grid_instance[i]); RS::get_singleton()->free(grid_instance[i]);
VS::get_singleton()->free(grid[i]); RS::get_singleton()->free(grid[i]);
grid_instance[i] = RID(); grid_instance[i] = RID();
grid[i] = RID(); grid[i] = RID();
VisualServer::get_singleton()->free(selection_level_instance[i]); RenderingServer::get_singleton()->free(selection_level_instance[i]);
} }
VisualServer::get_singleton()->free(selection_instance); RenderingServer::get_singleton()->free(selection_instance);
VisualServer::get_singleton()->free(paste_instance); RenderingServer::get_singleton()->free(paste_instance);
selection_instance = RID(); selection_instance = RID();
paste_instance = RID(); paste_instance = RID();
} break; } break;
@ -1123,7 +1123,7 @@ void GridMapEditor::_notification(int p_what) {
if (xf != grid_xform) { if (xf != grid_xform) {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VS::get_singleton()->instance_set_transform(grid_instance[i], xf * edit_grid_xform); RS::get_singleton()->instance_set_transform(grid_instance[i], xf * edit_grid_xform);
} }
grid_xform = xf; grid_xform = xf;
} }
@ -1159,7 +1159,7 @@ void GridMapEditor::_update_cursor_instance() {
} }
if (cursor_instance.is_valid()) if (cursor_instance.is_valid())
VisualServer::get_singleton()->free(cursor_instance); RenderingServer::get_singleton()->free(cursor_instance);
cursor_instance = RID(); cursor_instance = RID();
if (selected_palette >= 0) { if (selected_palette >= 0) {
@ -1168,8 +1168,8 @@ void GridMapEditor::_update_cursor_instance() {
Ref<Mesh> mesh = node->get_mesh_library()->get_item_mesh(selected_palette); Ref<Mesh> mesh = node->get_mesh_library()->get_item_mesh(selected_palette);
if (!mesh.is_null() && mesh->get_rid().is_valid()) { if (!mesh.is_null() && mesh->get_rid().is_valid()) {
cursor_instance = VisualServer::get_singleton()->instance_create2(mesh->get_rid(), get_tree()->get_root()->get_world()->get_scenario()); cursor_instance = RenderingServer::get_singleton()->instance_create2(mesh->get_rid(), get_tree()->get_root()->get_world()->get_scenario());
VisualServer::get_singleton()->instance_set_transform(cursor_instance, cursor_transform); RenderingServer::get_singleton()->instance_set_transform(cursor_instance, cursor_transform);
} }
} }
} }
@ -1353,8 +1353,8 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
lock_view = false; lock_view = false;
cursor_rot = 0; cursor_rot = 0;
selection_mesh = VisualServer::get_singleton()->mesh_create(); selection_mesh = RenderingServer::get_singleton()->mesh_create();
paste_mesh = VisualServer::get_singleton()->mesh_create(); paste_mesh = RenderingServer::get_singleton()->mesh_create();
{ {
// Selection mesh create. // Selection mesh create.
@ -1431,16 +1431,16 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
} }
Array d; Array d;
d.resize(VS::ARRAY_MAX); d.resize(RS::ARRAY_MAX);
inner_mat.instance(); inner_mat.instance();
inner_mat->set_albedo(Color(0.7, 0.7, 1.0, 0.2)); inner_mat->set_albedo(Color(0.7, 0.7, 1.0, 0.2));
inner_mat->set_shading_mode(StandardMaterial3D::SHADING_MODE_UNSHADED); inner_mat->set_shading_mode(StandardMaterial3D::SHADING_MODE_UNSHADED);
inner_mat->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA); inner_mat->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA);
d[VS::ARRAY_VERTEX] = triangles; d[RS::ARRAY_VERTEX] = triangles;
VisualServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, VS::PRIMITIVE_TRIANGLES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, RS::PRIMITIVE_TRIANGLES, d);
VisualServer::get_singleton()->mesh_surface_set_material(selection_mesh, 0, inner_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(selection_mesh, 0, inner_mat->get_rid());
outer_mat.instance(); outer_mat.instance();
outer_mat->set_albedo(Color(0.7, 0.7, 1.0, 0.8)); outer_mat->set_albedo(Color(0.7, 0.7, 1.0, 0.8));
@ -1454,23 +1454,23 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
selection_floor_mat->set_on_top_of_alpha(); selection_floor_mat->set_on_top_of_alpha();
selection_floor_mat->set_shading_mode(StandardMaterial3D::SHADING_MODE_UNSHADED); selection_floor_mat->set_shading_mode(StandardMaterial3D::SHADING_MODE_UNSHADED);
d[VS::ARRAY_VERTEX] = lines; d[RS::ARRAY_VERTEX] = lines;
VisualServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, VS::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, RS::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(selection_mesh, 1, outer_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(selection_mesh, 1, outer_mat->get_rid());
d[VS::ARRAY_VERTEX] = triangles; d[RS::ARRAY_VERTEX] = triangles;
VisualServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, VS::PRIMITIVE_TRIANGLES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, RS::PRIMITIVE_TRIANGLES, d);
VisualServer::get_singleton()->mesh_surface_set_material(paste_mesh, 0, inner_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(paste_mesh, 0, inner_mat->get_rid());
d[VS::ARRAY_VERTEX] = lines; d[RS::ARRAY_VERTEX] = lines;
VisualServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, VS::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, RS::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(paste_mesh, 1, outer_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(paste_mesh, 1, outer_mat->get_rid());
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
d[VS::ARRAY_VERTEX] = square[i]; d[RS::ARRAY_VERTEX] = square[i];
selection_level_mesh[i] = VS::get_singleton()->mesh_create(); selection_level_mesh[i] = RS::get_singleton()->mesh_create();
VisualServer::get_singleton()->mesh_add_surface_from_arrays(selection_level_mesh[i], VS::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_level_mesh[i], RS::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(selection_level_mesh[i], 0, selection_floor_mat->get_rid()); RenderingServer::get_singleton()->mesh_surface_set_material(selection_level_mesh[i], 0, selection_floor_mat->get_rid());
} }
} }
@ -1493,24 +1493,24 @@ GridMapEditor::~GridMapEditor() {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (grid[i].is_valid()) if (grid[i].is_valid())
VisualServer::get_singleton()->free(grid[i]); RenderingServer::get_singleton()->free(grid[i]);
if (grid_instance[i].is_valid()) if (grid_instance[i].is_valid())
VisualServer::get_singleton()->free(grid_instance[i]); RenderingServer::get_singleton()->free(grid_instance[i]);
if (cursor_instance.is_valid()) if (cursor_instance.is_valid())
VisualServer::get_singleton()->free(cursor_instance); RenderingServer::get_singleton()->free(cursor_instance);
if (selection_level_instance[i].is_valid()) if (selection_level_instance[i].is_valid())
VisualServer::get_singleton()->free(selection_level_instance[i]); RenderingServer::get_singleton()->free(selection_level_instance[i]);
if (selection_level_mesh[i].is_valid()) if (selection_level_mesh[i].is_valid())
VisualServer::get_singleton()->free(selection_level_mesh[i]); RenderingServer::get_singleton()->free(selection_level_mesh[i]);
} }
VisualServer::get_singleton()->free(selection_mesh); RenderingServer::get_singleton()->free(selection_mesh);
if (selection_instance.is_valid()) if (selection_instance.is_valid())
VisualServer::get_singleton()->free(selection_instance); RenderingServer::get_singleton()->free(selection_instance);
VisualServer::get_singleton()->free(paste_mesh); RenderingServer::get_singleton()->free(paste_mesh);
if (paste_instance.is_valid()) if (paste_instance.is_valid())
VisualServer::get_singleton()->free(paste_instance); RenderingServer::get_singleton()->free(paste_instance);
} }
void GridMapEditorPlugin::_notification(int p_what) { void GridMapEditorPlugin::_notification(int p_what) {

View File

@ -32,7 +32,7 @@
#include "core/input/input_filter.h" #include "core/input/input_filter.h"
#include "core/os/os.h" #include "core/os/os.h"
#include "servers/display_server.h" #include "servers/display_server.h"
#include "servers/visual/visual_server_globals.h" #include "servers/rendering/rendering_server_globals.h"
StringName MobileVRInterface::get_name() const { StringName MobileVRInterface::get_name() const {
return "Native mobile"; return "Native mobile";

View File

@ -50,7 +50,7 @@ NoiseTexture::NoiseTexture() {
NoiseTexture::~NoiseTexture() { NoiseTexture::~NoiseTexture() {
if (texture.is_valid()) { if (texture.is_valid()) {
VS::get_singleton()->free(texture); RS::get_singleton()->free(texture);
} }
if (noise_thread) { if (noise_thread) {
Thread::wait_to_finish(noise_thread); Thread::wait_to_finish(noise_thread);
@ -100,10 +100,10 @@ void NoiseTexture::_set_texture_data(const Ref<Image> &p_image) {
data = p_image; data = p_image;
if (data.is_valid()) { if (data.is_valid()) {
if (texture.is_valid()) { if (texture.is_valid()) {
RID new_texture = VS::get_singleton()->texture_2d_create(p_image); RID new_texture = RS::get_singleton()->texture_2d_create(p_image);
VS::get_singleton()->texture_replace(texture, new_texture); RS::get_singleton()->texture_replace(texture, new_texture);
} else { } else {
texture = VS::get_singleton()->texture_2d_create(p_image); texture = RS::get_singleton()->texture_2d_create(p_image);
} }
} }
emit_changed(); emit_changed();
@ -254,7 +254,7 @@ int NoiseTexture::get_height() const {
RID NoiseTexture::get_rid() const { RID NoiseTexture::get_rid() const {
if (!texture.is_valid()) { if (!texture.is_valid()) {
texture = VS::get_singleton()->texture_2d_placeholder_create(); texture = RS::get_singleton()->texture_2d_placeholder_create();
} }
return texture; return texture;

View File

@ -39,8 +39,8 @@
#include "drivers/unix/file_access_unix.h" #include "drivers/unix/file_access_unix.h"
#include "file_access_android.h" #include "file_access_android.h"
#include "main/main.h" #include "main/main.h"
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#include "servers/visual/visual_server_wrap_mt.h" #include "servers/rendering/rendering_server_wrap_mt.h"
#include "dir_access_jandroid.h" #include "dir_access_jandroid.h"
#include "file_access_jandroid.h" #include "file_access_jandroid.h"
@ -146,12 +146,12 @@ Error OS_Android::initialize(const VideoMode &p_desired, int p_video_driver, int
video_driver_index = p_video_driver; video_driver_index = p_video_driver;
visual_server = memnew(VisualServerRaster); rendering_server = memnew(RenderingServerRaster);
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, false)); rendering_server = memnew(RenderingServerWrapMT(rendering_server, false));
} }
visual_server->init(); rendering_server->init();
AudioDriverManager::initialize(p_audio_driver); AudioDriverManager::initialize(p_audio_driver);
@ -759,7 +759,7 @@ OS_Android::OS_Android(GodotJavaWrapper *p_godot_java, GodotIOJavaWrapper *p_god
//rasterizer = NULL; //rasterizer = NULL;
use_gl2 = false; use_gl2 = false;
visual_server = NULL; rendering_server = NULL;
godot_java = p_godot_java; godot_java = p_godot_java;
godot_io_java = p_godot_io_java; godot_io_java = p_godot_io_java;

View File

@ -37,7 +37,7 @@
#include "core/os/main_loop.h" #include "core/os/main_loop.h"
#include "drivers/unix/os_unix.h" #include "drivers/unix/os_unix.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
class GodotJavaWrapper; class GodotJavaWrapper;
class GodotIOJavaWrapper; class GodotIOJavaWrapper;
@ -75,7 +75,7 @@ private:
bool use_16bits_fbo; bool use_16bits_fbo;
VisualServer *visual_server; RenderingServer *rendering_server;
mutable String data_dir_cache; mutable String data_dir_cache;

View File

@ -32,9 +32,9 @@
#include "drivers/gles2/rasterizer_gles2.h" #include "drivers/gles2/rasterizer_gles2.h"
#include "main/main.h" #include "main/main.h"
#include "servers/physics/physics_server_sw.h" #include "servers/physics_3d/physics_server_3d_sw.h"
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#include "servers/visual/visual_server_wrap_mt.h" #include "servers/rendering/rendering_server_wrap_mt.h"
#include <Screen.h> #include <Screen.h>
@ -116,13 +116,13 @@ Error OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p
RasterizerGLES2::make_current(); RasterizerGLES2::make_current();
#endif #endif
visual_server = memnew(VisualServerRaster); rendering_server = memnew(RenderingServerRaster);
// FIXME: Reimplement threaded rendering // FIXME: Reimplement threaded rendering
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, false)); rendering_server = memnew(RenderingServerWrapMT(rendering_server, false));
} }
ERR_FAIL_COND_V(!visual_server, ERR_UNAVAILABLE); ERR_FAIL_COND_V(!rendering_server, ERR_UNAVAILABLE);
video_driver_index = p_video_driver; video_driver_index = p_video_driver;
@ -130,7 +130,7 @@ Error OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p
window->SetInput(input); window->SetInput(input);
window->Show(); window->Show();
visual_server->init(); rendering_server->init();
AudioDriverManager::initialize(p_audio_driver); AudioDriverManager::initialize(p_audio_driver);
@ -144,8 +144,8 @@ void OS_Haiku::finalize() {
main_loop = NULL; main_loop = NULL;
visual_server->finish(); rendering_server->finish();
memdelete(visual_server); memdelete(rendering_server);
memdelete(input); memdelete(input);
@ -267,7 +267,7 @@ void OS_Haiku::set_window_position(const Point2 &p_position) {
void OS_Haiku::set_window_fullscreen(bool p_enabled) { void OS_Haiku::set_window_fullscreen(bool p_enabled) {
window->SetFullScreen(p_enabled); window->SetFullScreen(p_enabled);
current_video_mode.fullscreen = p_enabled; current_video_mode.fullscreen = p_enabled;
visual_server->init(); rendering_server->init();
} }
bool OS_Haiku::is_window_fullscreen() const { bool OS_Haiku::is_window_fullscreen() const {

View File

@ -38,7 +38,7 @@
#include "haiku_application.h" #include "haiku_application.h"
#include "haiku_direct_window.h" #include "haiku_direct_window.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
class OS_Haiku : public OS_Unix { class OS_Haiku : public OS_Unix {
private: private:
@ -46,7 +46,7 @@ private:
HaikuDirectWindow *window; HaikuDirectWindow *window;
MainLoop *main_loop; MainLoop *main_loop;
InputDefault *input; InputDefault *input;
VisualServer *visual_server; RenderingServer *rendering_server;
VideoMode current_video_mode; VideoMode current_video_mode;
int video_driver_index; int video_driver_index;

View File

@ -37,13 +37,13 @@
#endif #endif
#if defined(VULKAN_ENABLED) #if defined(VULKAN_ENABLED)
#include "servers/visual/rasterizer_rd/rasterizer_rd.h" #include "servers/rendering/rasterizer_rd/rasterizer_rd.h"
// #import <QuartzCore/CAMetalLayer.h> // #import <QuartzCore/CAMetalLayer.h>
#include <vulkan/vulkan_metal.h> #include <vulkan/vulkan_metal.h>
#endif #endif
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#include "servers/visual/visual_server_wrap_mt.h" #include "servers/rendering/rendering_server_wrap_mt.h"
#include "main/main.h" #include "main/main.h"
@ -134,16 +134,16 @@ Error OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p
RasterizerRD::make_current(); RasterizerRD::make_current();
#endif #endif
visual_server = memnew(VisualServerRaster); rendering_server = memnew(RenderingServerRaster);
// FIXME: Reimplement threaded rendering // FIXME: Reimplement threaded rendering
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, false)); rendering_server = memnew(RenderingServerWrapMT(rendering_server, false));
} }
visual_server->init(); rendering_server->init();
//visual_server->cursor_set_visible(false, 0); //rendering_server->cursor_set_visible(false, 0);
#if defined(OPENGL_ENABLED) #if defined(OPENGL_ENABLED)
// reset this to what it should be, it will have been set to 0 after visual_server->init() is called // reset this to what it should be, it will have been set to 0 after rendering_server->init() is called
RasterizerStorageGLES2::system_fbo = gl_view_base_fb; RasterizerStorageGLES2::system_fbo = gl_view_base_fb;
#endif #endif
@ -361,8 +361,8 @@ void OSIPhone::finalize() {
memdelete(icloud); memdelete(icloud);
#endif #endif
visual_server->finish(); rendering_server->finish();
memdelete(visual_server); memdelete(rendering_server);
// memdelete(rasterizer); // memdelete(rasterizer);
// Free unhandled events before close // Free unhandled events before close
@ -636,7 +636,7 @@ OSIPhone::OSIPhone(int width, int height, String p_data_dir) {
ios_init_callbacks_capacity = 0; ios_init_callbacks_capacity = 0;
main_loop = NULL; main_loop = NULL;
visual_server = NULL; rendering_server = NULL;
VideoMode vm; VideoMode vm;
vm.fullscreen = true; vm.fullscreen = true;

View File

@ -41,8 +41,8 @@
#include "in_app_store.h" #include "in_app_store.h"
#include "ios.h" #include "ios.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
#include "servers/visual_server.h" #include "servers/rendering_server.h"
#if defined(VULKAN_ENABLED) #if defined(VULKAN_ENABLED)
#include "drivers/vulkan/rendering_device_vulkan.h" #include "drivers/vulkan/rendering_device_vulkan.h"
@ -60,7 +60,7 @@ private:
static HashMap<String, void *> dynamic_symbol_lookup_table; static HashMap<String, void *> dynamic_symbol_lookup_table;
friend void register_dynamic_symbol(char *name, void *address); friend void register_dynamic_symbol(char *name, void *address);
VisualServer *visual_server; RenderingServer *rendering_server;
AudioDriverCoreAudio audio_driver; AudioDriverCoreAudio audio_driver;

View File

@ -36,7 +36,7 @@
#include "drivers/unix/dir_access_unix.h" #include "drivers/unix/dir_access_unix.h"
#include "drivers/unix/file_access_unix.h" #include "drivers/unix/file_access_unix.h"
#include "main/main.h" #include "main/main.h"
#include "servers/visual/visual_server_raster.h" #include "servers/rendering/rendering_server_raster.h"
#include <emscripten.h> #include <emscripten.h>
#include <png.h> #include <png.h>
@ -962,7 +962,7 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver,
setenv("LANG", locale_ptr, true); setenv("LANG", locale_ptr, true);
AudioDriverManager::initialize(p_audio_driver); AudioDriverManager::initialize(p_audio_driver);
VisualServer *visual_server = memnew(VisualServerRaster()); RenderingServer *rendering_server = memnew(RenderingServerRaster());
input = memnew(InputDefault); input = memnew(InputDefault);
EMSCRIPTEN_RESULT result; EMSCRIPTEN_RESULT result;
@ -1016,7 +1016,7 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver,
); );
/* clang-format on */ /* clang-format on */
visual_server->init(); rendering_server->init();
return OK; return OK;
} }

View File

@ -35,7 +35,7 @@
#include "core/input/input_filter.h" #include "core/input/input_filter.h"
#include "drivers/unix/os_unix.h" #include "drivers/unix/os_unix.h"
#include "servers/audio_server.h" #include "servers/audio_server.h"
#include "servers/visual/rasterizer.h" #include "servers/rendering/rasterizer.h"
#include <emscripten/html5.h> #include <emscripten/html5.h>

Some files were not shown because too many files have changed in this diff Show More