Releases: talesm/SDL3pp
0.9.3
0.9.2
Minor addition of missing functions and grouping common resource functionality
in template classes.
- Add missing tray free functions when previously had only methods:
- SetTrayEntryCallback with TrayCB callback;
- AppendTrayEntry;
- Add TrayEntry constructor;
- Remove
Renderer(Window)constructor, make second parameter of
Renderer(Window, StringParam)nullptr instead; - Docs improvements:
- Add namespace tab;
- Document namespace
prop; - Document namespace
prop::AudioStream; - Document namespace
prop::Display; - Document namespace
prop::FileDialog; - Document namespace
prop::GamepadCap; - Document namespace
prop::GPU*; - Document namespace
prop::Hidapi; - Document namespace
prop::IOStream; - Document namespace
prop::JoystickCap; - Document namespace
prop::Process; - Document namespace
prop::Renderer; - Document namespace
prop::Renderer; - Document namespace
prop::Surface; - Document namespace
prop::TextInput; - Document namespace
prop::Thread; - Document namespace
prop::AnimationEncoder; - Document namespace
prop::AnimationDecoder; - Document namespace
prop::Metadata; - Document namespace
prop::Audio; - Document namespace
prop::Mixer; - Document namespace
prop::MixMetadata; - Document namespace
prop::Play; - Document namespace
prop::Font; - Document namespace
prop::GpuFontEngine; - Document namespace
prop::RendererTextEngine;
- Resource improvements:
- Create template base class for non-owning (Like TrayEntry);
- Create template base class for unique owning (Like Window);
- Create template base class for shared owning (Like Surface);
- Make ResourceRef template class for all *Ref;
0.9.1
Minor update to bump base SDL and SDL_image, besides a few improvements
- Docs improvements:
- Fix ./docs/DesignNotes.dox links;
- Use interactive SGV graphs;
- Remove [./docs/constructor-tag.md](constructor tag);
- Add
<=>operator for Point, FPoint; - Bump SDL version to 3.4.4;
- Bump SDL_image version to 3.4.2;
- Upgrade doxygen so we can have a nicer theme for generated docs;
0.9.0
Thanks to @kinderhead we found some cross-compiler compatibility problems caused
by accidentally using gcc specific extensions, specially constexpr being used
where it does not really applies. I worked with him to get it to compile on MSVC
and updated the github actions to build and test to both MSVC and Clang in
addition to GCC we already were testing.
As removing constexpr is kind of a compatibility break, I bumped to 0.9.0 and
included other breaking change in my backlog, the complete list of changes are
bellow:
- Make StringParam differentiate
nullptrfrom ""; - On Windows, downloads pre-compiled versions, if possible.
- Disambiguate between SDL_image and SDL's load/save surface functions;
- Remove wrappers for IMG_LoadBMP_IO, IMG_SaveBMP and IMG_SaveBMP_IO, as they
just call SDL's version of these; - Rename wrapper for SDL_LoadPNG_IO to LoadTrustedPNG_IO;
- Rename wrapper for SDL_LoadPNG to LoadTrustedPNG;
- Rename wrapper for SDL_SavePNG_IO to SaveTrustedPNG_IO;
- Rename wrapper for SDL_SavePNG to SaveTrustedPNG;
- Remove wrappers for IMG_LoadBMP_IO, IMG_SaveBMP and IMG_SaveBMP_IO, as they
- Remove Surface::Load* functions:
- Remove Surface::LoadBMP_IO(), use freestanding LoadBMP_IO() instead;
- Remove Surface::LoadBMP(), use freestanding LoadBMP() instead;
- Remove Surface::LoadPNG_IO(), use freestanding LoadPNG_IO() instead;
- Remove Surface::LoadPNG(), use freestanding LoadPNG() instead;
- Create Surface::Save();
- Wrap TTF_OpenFontIO to just OpenFontIO, instead of overloading with OpenFont;
- TTF_PROP_FONT_CREATE_EXISTING_FONT is now wrapped by CREATE_EXISTING_FONT
(removed the misleading_PONTERprefix); - Fix bug preventing compilation on VisualStudio
- Use of gnu extension
?:; - Use of invalid constexpr;
- Use of gnu extension
- Fix Thread ctor for wrapped functions;
- Added CI tests for linux/Clang and Windows/MSVC;
- Remove src/generated/ from version control;
- Warnings fixes:
- operator-> const for resources;
- Fix Camera::AcquireCameraFrame;
- Add SDL_assert on all narrowing due to different between std and SDL size
types width; - Don't default shared resources' copy assignment operators;
- Remove copy assignment operators on non-copyable resources;
- Remove copy constructors on non-copyable resources;
- Simplify scoped resources constructors and assignment operators;
- Fix several minor warnings;
- Properly encapsulate Param and ConstParam legacy:
- Create template for ConstParam;
- Create template for legacy Param;
- Make value private and rename to m_resource.
0.8.1
0.8.0
This versions simplifies the handling of resource classes, reducing the number
of auxiliary classes needed. It also wraps the SDL_mixer API.
- Merge *Ref with *Param resource classes into a single class:
- Make *Ref always non-owning
- Replace *Param with *Ref;
- Remove *Param;
- Rename *ConstRef to *ConstParam
- Wrap SDL_mixer;
- Remove overloading of
*_IOvariants:- SDL::LoadWAV_IO();
- SDL::LoadFile_IO();
- SDL::SaveFile_IO();
- SDL::LoadAVIF_IO
- SDL::LoadBMP_IO
- SDL::LoadICO_IO
- SDL::LoadCUR_IO
- SDL::LoadGIF_IO
- SDL::LoadJPG_IO
- SDL::LoadJXL_IO
- SDL::LoadLBM_IO
- SDL::LoadPCX_IO
- SDL::LoadPNG_IO
- SDL::LoadPNM_IO
- SDL::LoadSVG_IO
- SDL::LoadQOI_IO
- SDL::LoadTGA_IO
- SDL::LoadTIF_IO
- SDL::LoadXCF_IO
- SDL::LoadXPM_IO
- SDL::LoadXV_IO
- SDL::LoadWEBP_IO
- SDL::LoadSizedSVG_IO
- Error handling fixes:
- SDL::GetClipboardMimeTypes();
- SDL::GetGamepadMappings();
- SDL::GetGamepadJoystick();
- SDL::AcquireGPUCommandBuffer();
- SDL::MapGPUTransferBuffer();
- SDL::SubmitGPUCommandBufferAndAcquireFence();
- SDL::GetHapticFeatures();
- SDL::AttachVirtualJoystick();
- SDL::GetMouseNameForID();
- SDL::GetPenDeviceType();
- SDL::GetRendererName();
- SDL::GetRendererFromTexture();
- SDL::GetSensorID();
- SDL::GetAndroidJNIEnv();
- SDL::GetAndroidActivity();
- SDL::GetTouchDeviceName();
- SDL::CreateAnimationEncoder();
- SDL::CreateAnimationEncoder_IO();
- SDL::CreateAnimationEncoderWithProperties();
- SDL::CreateAnimationDecoder();
- SDL::CreateAnimationDecoder_IO();
- SDL::CreateAnimationDecoderWithProperties();
- SDL::GetGlyphImage();
- SDL::GetGlyphImageForIndex();
- No longer throws:
- SDL::GetEventFilter();
- SDL::GetWindowFromEvent();
- SDL::TryLockMutex();
- SDL::TryLockRWLockForReading();
- SDL::TryLockRWLockForReading();
- SDL::GetRenderMetalLayer();
- SDL::GetRenderMetalCommandEncoder();
- SDL::GetWindowParent();
- SDL::SyncWindow();
- SDL::EGL_GetWindowSurface();
- Fix warnings for default ctors initializing resources as nullptr;
- Make lock's get() const:
- AudioStreamLock.get();
- CameraFrame.get();
- MixerLock.get();
- PropertiesLock.get();
- TextureLock.get();
- SurfaceLock.get();