CUGL Bug Patches
CUGL is continually a work in progress. Every time we work on a lecture we either find some issue, or some way in which the engine can be improved. While we try to feature lock the engine at the start of the semester, that is not always possible.
This page is where we will post the mid-semester patches. For each file you
should simply copy it to the correct directory. Source code files replace the
appropriate file in cugl/source
. Header files replace the appropriate file
in cugl/include/cugl
.
In addition, this semester we will always update the download link to CUGL after a patch. So you can get all the benefits of a patch simply by redownloading CUGL.
Patch 2.5.1 (January 27, 2024) Leaking like a Sieve
This patch is to address a major memory leak that was a result of several files not being properly pushed to the repository.
- cugl/sdlapp/src/atk/file/ATK_file.c: Fixed a mutex deadlock
- cugl/include/cugl/audio/CUAudioDecoder.h: Fixed a massive memory leak
- cugl/source/audio/CUAudioEngine.cpp: Fixed several issues with sound pausing.
- cugl/source/audio/graph/CUAudioMixer.cpp: Fixed a problem with the mixer width.
- cugl/source/audio/graph/CUAudioOutput.cpp: Fixed an issue with output switching.
- cugl/include/cugl/audio/graph/CUAudioPanner.h: Added a new convenience allocator.
- cugl/source/audio/graph/CUAudioPanner.cpp: Added a new convenience initializer.
- cugl/source/audio/graph/CUAudioPlayer.cpp: Fixed issue with open file handles.
- cugl/source/audio/CUAudioQueue.cpp: Fixed a race condition with the listeners.
- cugl/source/scene2/ui/CUTextField.cpp: Fixed cursor positioning and movement.
Patch 2.5.2 (January 30, 2024) I Feel Scene
This patch is to address some issues with the scene graph that are necessary to support the Figma plugin used by designers. This includes a change to a physics class necessitated by some issues with box2d.
- cugl/templates/windows/project/project.vcxproj: Fixed an issue with DLLs linkage
- cugl/source/scene2/ui/CUButton.cpp: Fixed a Figma issue with button anchors
- cugl/source/scene2/graph/CUPathNode.cpp: Fixed a Figma issue with scaling
- cugl/source/scene2/graph/CUPolygonNode.cpp: Fixed a Figma issue with scaling
- cugl/source/physics2/CUPolygonObstacle.cpp: Fixed a problem with degenerate triangles
- cugl/include/cugl/scene2/graph/CUSceneNode.h: Added a method to improve Figma support
- cugl/source/scene2/graph/CUSpriteNode.cpp: Fixed a conflict between Figma and animation
- cugl/include/cugl/scene2/graph/CUSpriteNode.h: Fixed a conflict between Figma and animation
Patch 2.5.3 (January 31, 2024) Rolling Back
So, apparently the new and improved audio system chokes on high performance laptops. The older system (which is fine, just not as high performance) seems fine. So we are rolling back. Fortunately, I was able to limit the damage to two classes, so we still keep the new sound effect classes.
- cugl/include/cugl/audio/graph/CUAudioOutput.h: Roll back to CUGL 2.3.
- cugl/source/audio/graph/CUAudioOutput.cpp: Roll back to CUGL 2.3.
- cugl/include/cugl/audio/graph/CUAudioResampler.h: Roll back to CUGL 2.3.
- cugl/source/audio/graph/CUAudioResampler.cpp: Roll back to CUGL 2.3.
Patch 2.5.4 (February 6, 2024) Sliding Away
In redesigning the Figma lab for the designers, we discovered some minor issues with the slider UI element. These have been patched so that the lab works properly.
- cugl/include/cugl/scene2/ui/CUSlider.h: Redesigned JSON specification.
- cugl/source/scene2/ui/CUSlider.cpp: Redesigned JSON specification.
Patch 2.5.5 (March 5, 2024) All Hands on Deck
This patch specifically addresses issues with the SteamDeck discovered in Gameplay Prototypes. In particular, the GameController
class has been completely redesigned. We also made some more audio changes to support the sound demo from class.
- cugl/include/cugl/render/cu_render.h: Add missing reference to
CUVertexBuffer.h
. - cugl/include/cugl/input/CUGameController.h: Redesigned to better support game controllers.
- cugl/source/input/CUGameController.cpp: Redesigned to better support game controllers.
- cugl/include/cugl/util/CULogger.cpp: Fixed a segfault on some Linux platforms.
- cugl/include/cugl/render/CUSpriteSheet.cpp: Fixed an issue with lesser used method.
- cugl/source/audio/CUAudioQueue.cpp: Fixed an issue with queue management.
- cugl/source/audio/graph/CUAudioScheduler.cpp: Fixed an issue with queue management.