summaryrefslogtreecommitdiff
path: root/drivers/gles2/rasterizer_storage_gles2.cpp
AgeCommit message (Collapse)Author
2020-01-12Fix light and multimesh crashesclayjohn
2020-01-06Add VisualServer methods to get the video adapter name and vendorHugo Locurcio
These methods can be used in scripts to retrieve the OpenGL `GL_RENDERER` and `GL_VENDOR` strings (respectively). This closes #28404.
2020-01-03Fix crash on trimesh_create by making surface->data available in non-tool buildsclayjohn
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-12-19Always use 16 bit renderbuffer depth on WebGLclayjohn
2019-12-10Merge pull request #34238 from clayjohn/GLES2-use-renderbuffer-post-processRémi Verschelde
Use renderbuffer depth for post-process buffers when appropriate
2019-12-09Use renderbuffer depth for post-process buffers when appropriateclayjohn
2019-12-09Force 32 bit depth buffer for WebGLclayjohn
2019-11-26Use ANGLE multisample extensions for UWPGeorge Marques
2019-11-23Restructure depth_internalformat code to work on mobileclayjohn
This changes the code path so that `glRenderBufferStorage*` always uses values appropriate for renderbuffers and `glTexImage2D` never uses an internalformat meant for buffers. Fixes #33825.
2019-11-23glTexImage2D: Fix confusion between format and internal formatRémi Verschelde
The `format` parameter is similar to `internalFormat` but takes different values, and especially only `GL_DEPTH_COMPONENT` for depth, without size specifier. Cf. https://www.khronos.org/registry/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml Fixes a regression from #33278 and another occurrence.
2019-11-19Need to use GL_RGB8 and GL_RGBA8 as the internal format for GLES2Bastiaan Olij
2019-11-11Add special external MSAA modes for GLES2 Rift S/Quest and OpenXR optimisationBastiaan Olij
2019-11-08Revert "fix #33188 MSAA depth buffer not used for external texture"Bastiaan Olij
This reverts commit 418b035ddaaf9b40892ba88632c3aa6f3bf128b5.
2019-11-04fix #33188 MSAA depth buffer not used for external textureHolger Dammertz
When rendering to an external texture and MSAA was active (as happened in the Oculus Mobile ARVR plugin) no MSAA was rendered as the correct depth buffer and multisample texture target was not used. This also fixes https://github.com/GodotVR/godot_oculus_mobile/issues/54
2019-11-03Merge pull request #33278 from clayjohn/GLES2-depth-formatRémi Verschelde
Fix depth format on Android in GLES2
2019-11-02Fix depth format on Android in GLES2clayjohn
2019-10-30When framebuffer allocation fails for MSAA in GLES2 revert to normal without ↵clayjohn
ERR_FAIL
2019-10-28Merge pull request #33104 from qarmin/fix_some_crashesRémi Verschelde
Fix some crashes and using null pointers
2019-10-28Merge pull request #33097 from clayjohn/GLES2-HTML-sampler_limitRémi Verschelde
Fixed using compressed textures and add work around for firefox webgl mesa sampler limit
2019-10-28Fix some crashes and using null pointersRafał Mikrut
2019-10-27Fixed using compressed textures and add work around for firefox webgl mesa ↵clayjohn
sampler limit
2019-10-27use proper texture in Android MSAAclayjohn
2019-10-26Merge pull request #33093 from clayjohn/GLES2-HTML-shadowsRémi Verschelde
Fix shadow mapping with RGBA textures on html
2019-10-26Fix shadow mapping with RGBA textures on htmlclayjohn
2019-10-25WebGL 2.0: Force decompressing non power-of-2 textures with repeat/mipmapRémi Verschelde
While OpenGL ES 3.0 and WebGL 2.0 both support non power-of-2 (NPOT) textures in their specification, the situation seems to be less clear about *compressed* NPOT textures using repeat or mipmap flags. At least Chrome on Linux doesn't seem to support this combination, and a variety of mobile hardware have similar limitations. As a workaround, we force decompressing such textures when running on WebGL 2.0, at the cost of loading time and memory usage. Fixes #33058.
2019-10-06fix current issues with post-processingclayjohn
2019-10-02remove glViewport call as it wasnt needed and caused crashclayjohn
2019-10-02Removed unnecessary shader error log messagesYuri Roubinsky
2019-09-30Implement DOF blur, Glow, and BCS in GLES2clayjohn
2019-09-23Merge pull request #32275 from godotengine/skin_supportRémi Verschelde
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-22Fix GLES2 skinning where VERTEX_TEXTURE not supportedlawnjelly
Although the backup USE_SKELETON_SOFTWARE skinning path is currently used when float texture is not supported, the default skinning path still fails when float texture is supported but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0, i.e. the device cannot read from texture during vertex shader. This PR adds the logic to activate the SKELETON_SOFTWARE path if either of these cases occur, preventing crashes on devices which have this combination of features.
2019-09-18Added skin support and simplified APIs to override bone position.Juan Linietsky
2019-08-25Fix hint range step for integer in shadersYuri Roubinski
2019-08-18check if skeleton texture is already allocated before reallocatingclayjohn
2019-08-17Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in 'core/' and 'editor/'Braden Bodily
Condensed some if and ERR statements. Added dots to end of error messages Couldn't figure out EXPLAINC. These files gave me trouble: core/error_macros.h, core/io/file_access_buffered_fa.h (where is it?), core/os/memory.cpp, drivers/png/png_driver_common.cpp, drivers/xaudio2/audio_driver_xaudio2.cpp (where is it?)
2019-08-10check for unsigned_short support for gles2 depth buffer allocationclayjohn
2019-07-20Changed some code showed in LGTM and Coverageqarmin
2019-07-06Added release function to PoolVector::Access.Ibrahn Sahir
For clarity, assign-to-release idiom for PoolVector::Read/Write replaced with a function call. Existing uses replaced (or removed if already handled by scope)
2019-06-26Some code changed with Clang-Tidyqarmin
2019-06-20Merge pull request #29283 from qarmin/fix_some_always_same_valuesRémi Verschelde
Remove always true/false values
2019-06-20Fix always true/false valuesqarmin
2019-06-18Merge pull request #29751 from lawnjelly/skin-fixRémi Verschelde
Fixes crash with rigged meshes on some OpenGLES2 devices
2019-06-18Fixes crash with rigged meshes on some OpenGLES2 deviceslawnjelly
Non-tools OpenGLES2 devices that use the USE_SKELETON_SOFTWARE path (i.e. do not support float texture) depend on surface->data being set containing the bone IDs and weights (rasterizer_scene_gles2.cpp, line 1456, RasterizerSceneGLES2::_setup_geometry). However currently if TOOLS_ENABLED is not defined, surface->data is not stored in main memory in rasterizer_storage_gles2.cpp. This causes a crash in rasterizer_scene_gles2.cpp when a rigged object comes into view. This fix addresses the specific case of skinned objects when USE_SKELETON_SOFTWARE is active, and stores a copy of the bone data, as is done when TOOLS_ENABLED is defined. This fixes the crash by allowing the same mechanism as on desktop, without adding the memory overhead of storing all vertex data where not required. Fixes #28298
2019-06-15Adding a new Camera Server implementation to Godot.BastiaanOlij
This is a new singleton where camera sources such as webcams or cameras on a mobile phone can register themselves with the Server. Other parts of Godot can interact with this to obtain images from the camera as textures. This work includes additions to the Visual Server to use this functionality to present the camera image in the background. This is specifically targetted at AR applications.
2019-06-14Fix HTML5 build failed due to undefined symbolFabio Alessandrelli
2019-06-04use def ANDROID_ENABLED so android features are not included in javascript ↵clayjohn
builds
2019-05-13Implement ability to render viewports directly to screenclayjohn
2019-05-13Merge pull request #28518 from clayjohn/GLES2-MSAARémi Verschelde
Added MSAA to GLES2 backend
2019-05-08Fix texture resource reload bugDaniel Rakos
If a non-imported texture resource file (e.g. DDS) gets updated the editor doesn't reload it. The cause of the problem is two-fold: First, the code of ImageTexture assumes that textures are always imported from an image, but that's not the case for e.g. DDS. This change thus adds code to issue a resource reload in case an image reload is not possible (which is the case for non-imported texture resources). Second, the code is filled with bogus calls to Image::get_image_data_size() to determine the mipmap offset when that should be done using Image::get_image_mipmap_offset(). Previous code literally passed the integer mip level value to Image::get_image_data_size() where that actually expects a boolean. Thus this part of the change might actually solve some other issues as well. To be pedantic, the texture_get_data() funciton of the rasterizer drivers is still quite a mess, as it only ever returns the whole mipchain when GLES_OVER_GL is set (practically only on desktop builds) but this change does not attempt to resolve that.