I am creating some classes to interface with OpenGL. One of them is GLSLShader. I want to glCreateShader in the contructor and call glCompileShader in a separate function called compile. So I wondered, if I call glCompileShader multiple times, would that cause a memory leak or any negative effects?
Are there any negative effects of calling glCompileShader multiple times using the same shader id?
51 Views Asked by Christopher Barrios Agosto At
1
There are 1 best solutions below
Related Questions in C++
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Why can't I use templates members in its specialization?
- How to fix "Access violation executing location" when using GLFW and GLAD
- Dynamic array of structures in C++/ cannot fill a dynamic array of doubles in structure from dynamic array of structures
- How do I apply the interface concept with the base-class in design?
- File refuses to compile std::erase() even if using -std=g++23
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Can std::bit_cast be applied to an empty object?
- Unexpected inter-thread happens-before relationships from relaxed memory ordering
- How i can move element of dynamic vector in argument of function push_back for dynamic vector
- Brick Breaker Ball Bounce
- Thread-safe lock-free min where both operands can change c++
- Watchdog Timer Reset on ESP32 using Webservers
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Conda CMAKE CXX Compiler error while compiling Pytorch
Related Questions in OPENGL
- How to fix "Access violation executing location" when using GLFW and GLAD
- getting Access violation writing location when calling glDrawElements caused by shader
- Experimenting with GLFW library: window boundary problem and normalized coordinates
- OpenGL Framebuffer/FBO RTT subpixel movement discrepancy
- Why isn't my glfw window showing anything?
- How can glPushMatrix affect the rotation of an object around a rotating object?
- g++ / vscode apparently cannot see my src folder? "cc1plus.exe: fatal error: src/glad.c No such file or directory"
- Does addition-assignment cause dependency chain in GLSL?
- Compiling C++ program with Opengl and Glut in windows
- Using Silk.NET in WinForms
- What happens when rendering an OpenGL buffer that has been padded with NULL (or another value)?
- How can I make a sphere follow an eight-like path in Python using OpenGL?
- OpenGL only rendering second triangle, first triangle not visible
- OpenGL shows black texture on quad
- My Visual Studio 2022 consistently gives me errors saying that the GLchar variable type is undefined
Related Questions in MEMORY
- 9 Digit Addresses in Hexadecimal System in MacOS
- Memory location changing from 0 to 1 consistently on Mac
- Would event listeners prevent garbage collecting objects referenced in outer function scopes?
- tensorrt inference problem: CPU memory leak
- How to estimate the memory size of a binary voxelized geometry?
- Java Memory UTF-16 Vs UTF-8
- Spring Boot application container memory footprint (Java 21)
- Low memory Windows CE
- How to throw an error when a program acesses a block of memory created by you that has been deallocated by a call of free?
- Golang bufio.Scanner: token too long
- Get the address and size of a loaded shared object on memory from C
- In Redis Databases how do we need to calculate the table size
- ClickHouse Materialized View consuming a lot of Memory and CPU
- How to reduce memory usage for large matrix calculations?
- How to use memray with Gunicorn or flask dev server?
Related Questions in GLSL
- GLSL clamps indices on array access
- Issue with Loading Images in Flutter FragmentShader and GLSL Code
- How to use bitwise operators in GLSL
- Why isn't my glfw window showing anything?
- Three.js how to determine if backfacing in a RawShaderMaterial that's double sided and transparent?
- Does addition-assignment cause dependency chain in GLSL?
- Why is the value of `gl_FragCoord.z` is always 0.5?
- How to draw a WebGLTexture into another Canvas?
- How to display GLSL shaders on a png
- Single WebGL 2.0 shader for multiple texture precisions
- Problem when rendering a red triangle using modernGL and Pygame
- GLSL fragment shader: How do I prevent seams when sampling half of texture to repeat? (with mipmapping or linear filtering on)
- How can I send large arrays of objects to a fragment shader using WebGL2?
- WebGL 2.0 unsigned integer input variable
- GLSL issue with smoothstep function where edge0 is bigger than edge1
Related Questions in SHADER
- How to use bitwise operators in GLSL
- Three.js how to determine if backfacing in a RawShaderMaterial that's double sided and transparent?
- UNITY_VERTEX_INPUT_INSTANCE_ID use in custom shader
- How to draw a WebGLTexture into another Canvas?
- How can I improve my brush on mobile with Unity slow touch interpretation problem?
- FrameBuffer texture reading black for each pixel WebGL
- Single WebGL 2.0 shader for multiple texture precisions
- How you can make a 3D mask in the UI so that it is displayed correctly. Unity
- Could I use multiple materials in Skybox?
- C++ DirectX compress 3D texture into 2D texture
- Enabling transparency on objects rendered to render texture makes them disappear completely on iOS - React Three Fiber
- i have a glslf file how do i convert that to rgb (primitive lua knowledge)
- Why unity do not include my shader to build but log them?
- Compiling vertex shader from vulkan tutorial with glslc gives error: linking multiple files in not supported yet
- Three.js using EffectComposer renderTarget texture is causing flickering / strobing
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Calling
glCompileShaderon a shader object will perform compilation based on the strings currently in that shader, functionally replacing the shader's useful contents. If you compile a shader, don't change the strings, and then compile it again, nothing meaningful should happen.However, most programs don't do this, so in terms of actual OpenGL implementations, this is code that rarely gets tested. So it is possible that this is more than a no-op. It could rerun shader compilation rather than doing nothing. It might even leak memory if there's a bug in the implementation.
In general, this should never come up. The only reason to compile a shader is if you have set the shader's strings. That is, the sequence of operations is always "set strings, compile", in that order. If you don't do the former, there's no reason to do the latter.
So don't let people do it. Your
compilefunction should be given the string(s) to compile as parameters.