Skip to content

Releases: talesm/SDL3pp

0.9.3

22 Apr 12:55

Choose a tag to compare

Minor bugfix for CreateMixerDevice signature.

0.9.2

10 Apr 15:02

Choose a tag to compare

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

06 Apr 13:27

Choose a tag to compare

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

30 Mar 14:09
010a7c3

Choose a tag to compare

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 nullptr from "";
  • 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 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 _PONTER prefix);
  • Fix bug preventing compilation on VisualStudio
    • Use of gnu extension ?:;
    • Use of invalid constexpr;
  • 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

18 Mar 18:02

Choose a tag to compare

Small bugs related shared resource copying and locking.

  • Fix bug on copying Surface to SurfaceRef;
  • Fix bug on copying SurfaceRef to Surface;
  • SurfaceLock use Surface instead of SurfaceRef.

0.8.0

17 Mar 18:53

Choose a tag to compare

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 *_IO variants:
    • 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();

0.7.4

11 Mar 15:31

Choose a tag to compare

  • Add operator[] to SDL::Palette;
  • Bump SDL3 compatibility to 3.4.2;

0.7.3

05 Feb 21:00

Choose a tag to compare

Fix segfault when copying empty Surface

0.7.2

29 Jan 20:02

Choose a tag to compare

  • Fix retrocompatibility error on SDL3pp_image.h's SDL::IsANI();
  • Make bundled libs downloaded from URL instead of checking out the entire
    repository;

0.7.1

27 Jan 15:09

Choose a tag to compare

Small update to add support to SDL_image 3.4.0 new features.