Commit graph

193 commits

Author SHA1 Message Date
AzaezelX 5ffa3b81f1 dial back nullPtr usage
while it still remains a good idea to port as many NULL compares and assignments over to nullPtr as feasable, we do still need to sort out how to better support scripted empty, false, and zero assigns for things like objectIDs.

this means we'll need to both fully convert the backend of the parser to support that kind of thing, but also alter most if not all exisiting NULLs. up to and including things like SAFE_DELETE. while that's certainly feasable, given there's aproximatel 400 nullptr assigns/checks prior to this commit, and roughly 1800 of the prior, if it terminates in a script call and not an aip one direct, we'll be dialing that back until such time as fork fully fopcused on converting and resolving any lingering mismatches is completed.
2025-12-29 17:45:09 -06:00
marauder2k7 3aef90a6bc Update GFXTextureManager and GBitmap
GBitmap Changes:
Added all other formats to gbitmap that we support
gbitmap now supports cubemaps
added converters for all these other formats
added stb_image_resize for extrudemips so we can extrude mipmaps for all other formats

GFXTextureManager
Can now directly make cubemaps and texture arrays based on the GFXTextureProfile
API implementations for all functions that cubemaps and arrays needed
2025-12-22 10:29:01 +00:00
AzaezelX 473a45fbca circular volatile buffer safety
add padding to the circular volative buffer overlap test to avoid loop artifacting
2025-11-20 10:04:20 -06:00
AzaezelX ab80a842aa fix particle glow 2025-10-20 10:56:19 -05:00
AzaezelX 8d38fa0bc4 gl side mip sanity clamps 2025-08-06 12:57:59 -05:00
marauder2k7 b9193072c1 fix for draw cone and draw cylinder
these werent rendering correctly and we suspect draw cone was trying to draw more than it was allocating. On a volatle buffer that causes issues.
2025-07-31 17:55:38 +01:00
marauder2k7 21095f777b Update gfxGLCircularVolatileBuffer.h
revert, that broke it more by upping memory
2025-07-29 16:08:51 +01:00
marauder2k7 267986a289 fix volatile buffer
change debugdraw to use volatile
fix volatile buffer wraparound
2025-07-29 15:20:22 +01:00
marauder2k7 d45c3794a5 Update gfxGLCircularVolatileBuffer.h
fix gl volatile buffer
2025-07-29 10:27:49 +01:00
marauder2k7 d4d552e8e0 recast update
Added chunkytrimesh - this class splits up the geometry the navmesh is interested in into kdtree for fast traversal, makes the actual navmesh generation work with smaller chunks.

Now only 1 RecastPolylist per navmesh this can be saved out in a future commit.

This is a history commit, all functionality works same as it did before but it matches recasts recommended setup more closely. Future additions may break backwards compatibility.
2025-07-22 14:39:36 +01:00
marauder2k7 26ebdd093b test commit to fix debug draw
pass all draws through duDebugDraw instead of calling our class directly.
2025-07-20 16:10:27 +01:00
AzaezelX 280ce94cfc misc opengl cleanups
allow GFXGLDevice::setVertexStream to use all 4 streams
clean out volatilebuffers at GFXGLDevice::endSceneInternal().
2025-07-08 14:14:16 -05:00
marauder2k7 f40c20d2f4 Update gfxGLShader.cpp
restore assertfatal if the bindPoint ==-1 as these require a location, ubo uniforms location returns -1
2025-05-21 07:16:45 +01:00
marauder2k7 ab36fe24ec fixes for opengl uniform buffer loading
This fix allows uniform buffers to be used with glsl shaders.

Small issue with uniform buffers not being initialized correctly.
2025-05-21 07:10:54 +01:00
marauder2k7 055ca0ae00 use screenshot for eye dropper
instead of using backbuffer image, use the screenshot so it captures everything
2025-01-23 20:23:47 +00:00
marauder2k7 ce4d861658 Test PR for generating cubemap mips
note ibl skips prefilter step and prefilter just becomes the cubeRefl.getCubemap()

Generates cubemap mip levels after the bake correctly on DX side.
2024-04-18 07:56:52 +01:00
marauder2k7 2b295fb7f0 rest of virtuals removed
virtuals removed and replaced with override where necessary on the rest of the code base, clang-tidy to the rescue.
2024-03-18 18:40:22 +00:00
marauder2k7 11d8604d8e ogl device buffer creation
now ogl mirrors dx side with ubo creation and clearing pushed up to the device level.
2024-03-14 14:23:08 +00:00
marauder2k7 e6c653c441 warnings cleanup
cleanup and some warning fixes
2024-03-14 08:28:11 +00:00
marauder2k7 9dc5ae833b opengl ubo setup
opengl can now compile with ubo buffer objects similar to cbuffers on dx side.

cleaned double up of data from both sides, gfxhandles only need to use the desc info instead of holding onto its own.
2024-03-13 22:23:01 +00:00
marauder2k7 fbed04050a gui shaders for opengl
First opengl geometry shader along with the other shaders for gui rendering opengl side.
2024-03-09 18:34:43 +00:00
marauder2k7 39c2cc09fc Update gfxGLShader.h
forgot to save the file...
2024-03-06 14:02:30 +00:00
marauder2k7 4a6fbd5811 DX and GL Geometry shaders added
Added the dx and gl geometry shader compile codes.
2024-03-06 13:51:50 +00:00
marauder2k7 630bee97c7 backup 2024-02-22 21:37:44 +00:00
AzaezelX 8c38448428 probe capture fixes
review of per and post bake protocols showed that the CAPTURING shader macro was not being properly recompiled in. as opengl was not playing nice with a simple batch shader recompilation for all effected shaders, a full lightmanager restart is at time of writing required. once we have a proper globally cached scene structure stored off GPU side, we'll want to change  GFXShader::addGlobalMacro("CAPTURING", String("1")); on over to dirtying that value in the cached buffer via setting a shader global uniform
review of prefilter examples shows a fixed sample count of 1024 across multiple implementations, so we'll use the standard barring further research into where that number is comming from for a scalar approach
review of gl shaders shows a doubleup in compiled state testing, so slimmed that down and added additional debugging reports
2023-12-05 13:32:03 -06:00
Lukas Aldershaab 89b0c7f73b Console Refactor 2023-09-13 10:33:20 +02:00
JeffR 0bdacb8795 Testing just disabling gfx device enumeration in test mode 2023-07-23 14:42:13 -05:00
Areloch 368b687043 This implements a fix to an issue with the CICD that causes a segfault.
The fix adds a sanity check to the D3D and GL device enumeration function that exits early if there's no registered display from the OS(implying it's running in commandline).
With newer versions of SDL, attempting to enumerate the GL device causes a segfault because the OS will return back a valid context, but the context isn't actually valid. So when tested against, it crashes. Avoiding enumerating the device when you're not in a position to render works around the issue.

TODO: If the machine is running in terminal-only mode, and thus has no valid render context, but still has a monitor plugged into the machine, it can sidestep the sanity check and still result in a segfault. Need a more robust check for that circumstance in a future fix.
2023-07-23 01:04:29 -05:00
marauder2k7 e0119efbb5 move border to gfxglstateblock 2023-07-19 16:33:01 +01:00
marauder2k7 63b2aba467
Apply suggestions from code review 2023-07-19 15:41:24 +01:00
marauder2k7 e325902bac init commit 2023-07-19 13:36:14 +01:00
XXTH a81c6ebd06 clean up 2023-05-12 11:42:06 +02:00
XXTH e0ab3830af bsd ready 2023-05-10 14:58:47 +02:00
AzaezelX 0d4221fa59 uninitialized and unused value cleanups
(cherry picked from commit 1f08602cf0ad84409cd8b3520510f9c6ce7d5f9c)
2023-05-01 10:40:02 -05:00
AtomicWalrus c64c2212ad Fix for MacOS OGL 4.1 support
Workaround: MacOS does not have access to glClipControl.

Because the lower range of the 32F buffer is not available using this workaround, the improvements to depth behavior from depth reversal will be limited on MacOS. Behavior is equivalent to reversed depth on a 24UINT buffer; Better than stock, but not dramatically.
2023-04-15 15:21:49 -06:00
AtomicWalrus 75625dc679 Reverse depth & 32F buffer format
-Adds reversed depth projection model, dramatically increasing depth buffer effective resolution.
-Adds 32F depth 8U stencil format GFXFormatD32FS8X24 (following DX naming conventions). Note this is a 64-bit format, and likely not suitable for mobile platforms. Revert to GFXFormatD24S8 in renderManager.tscript for mobile & "ancient" platforms.
-Corrects alignment of texture type details array.
2023-04-14 20:13:28 -06:00
AzaezelX aafbb7bfba add debug reportingfor cubemap arrays, and correct transcription flaw 2022-09-18 07:30:47 -05:00
Brian Roberts 3a800e51cc
Merge pull request #891 from Azaezel/alpha401/CubeMapMangle
get probes displaying with low Texture quality
2022-09-15 18:01:24 -05:00
Jeff Hutchinson 2e006390f8 Add GFXFormatA8L8 for OpenGL 2022-09-15 17:59:00 -04:00
AzaezelX ad3c961579 get probes displaying with low Texture quality
refactored detection of texture sizes for cubemaps
removed the assumption that if we give U32 GFXTextureManager::getTextureDownscalePower( GFXTextureProfile *profile ) no profile, it should go right ahead and downscale anyway
sniped the downscaling strings in the resulting U32 getProbeTexSize(); and void setCubeTexSize(const U32 cubemapFaceSize); until sucj time as we can properly follow up all possible combinations of shiping in one scale, and a customer choosing to use lower resolution textures as the current result is a hard shutoff entirely
2022-09-14 15:58:32 -05:00
Areloch cd82186231 Fixes setter issue for image/shape/material custom inspector fields where it was not correctly passing through the changed value from the Asset Browser select
Swapped the water's disableTrueReflections variable to be enableTrueReflections for simplicity and consistency(also fixed a persistent typo)
Swapped disableVerticalSync to be enableVerticalSync for simplicity and consistency
Swapped disableParallaxMapping to be enableParallaxMapping for simplicity and consistency
Fix click detection on slider mode entries for guiGameSettingsCtrl so the click position correctly matches the percentage
Fixed problem where postFX initialization would always exec default.postfxpreset.tscript, even if a level's got it's own preset, which can cause problems
Fixed range field type behavior so that editing the values applies in real time, and also consistently applies between slider and text field
2022-08-30 01:29:39 -05:00
Robert MacGregor 39952a490f * Cleanup: Resolve several compiler warnings associated with TORQUE_DEBUG. 2022-04-25 18:23:15 -04:00
rextimmy e1398895b3 fix opengl device not returning the correct anisotropic value 2021-12-15 20:09:18 +10:00
AzaezelX 0527865462 set cubemapsaver profile to one that preserves sizes
also aug size mismatches for the popup so they're reported
2021-11-21 14:28:51 -06:00
Jeff Hutchinson 90951b3cc8
Merge pull request #619 from Azaezel/alpha40/glcubefix
fix opengl cubemap display
2021-10-11 21:13:25 -04:00
AzaezelX bce14ab63f fix opengl cubemap display 2021-10-11 20:02:49 -05:00
Brian Roberts ed80136322
Merge pull request #615 from JeffProgrammer/gl_meminfo
OpenGL Memory Info Extensions
2021-10-11 19:31:10 -05:00
Robert MacGregor 1385b29f03 * Adjustment: Initial testing with extensions to load GPU VRAM. 2021-10-10 20:53:55 -04:00
Jeff Hutchinson a458c97217 Implement more extensions to get graphics card memory for OpenGL on windows and Linux.
(cherry picked from commit da942cdb79a87b76e629b36415c83067e3620a70)
2021-10-10 20:09:02 -04:00
AzaezelX e2e1c491ac Merge branch 'Preview4_0' of https://github.com/TorqueGameEngines/Torque3D into kermithelpme 2021-10-09 11:32:13 -05:00