mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-15 17:28:28 +00:00
Added initial MJPG support using stb_image
This commit is contained in:
parent
baf69edfc7
commit
a792434a37
12 changed files with 8217 additions and 16 deletions
|
@ -595,6 +595,7 @@
|
||||||
<ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_rect_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_rect_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
||||||
|
<ClInclude Include="..\..\src\video\SDL_stb_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_surface_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_surface_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_vulkan_internal.h" />
|
<ClInclude Include="..\..\src\video\SDL_vulkan_internal.h" />
|
||||||
|
@ -870,6 +871,7 @@
|
||||||
<ClCompile Include="..\..\src\video\SDL_pixels.c" />
|
<ClCompile Include="..\..\src\video\SDL_pixels.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_rect.c" />
|
<ClCompile Include="..\..\src\video\SDL_rect.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
|
<ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
|
||||||
|
<ClCompile Include="..\..\src\video\SDL_stb.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
||||||
|
|
|
@ -176,6 +176,7 @@
|
||||||
<ClCompile Include="..\..\src\video\SDL_pixels.c" />
|
<ClCompile Include="..\..\src\video\SDL_pixels.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_rect.c" />
|
<ClCompile Include="..\..\src\video\SDL_rect.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
|
<ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
|
||||||
|
<ClCompile Include="..\..\src\video\SDL_stb.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
||||||
|
@ -436,6 +437,7 @@
|
||||||
<ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_rect_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_rect_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
||||||
|
<ClInclude Include="..\..\src\video\SDL_stb_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_surface_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_surface_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_vulkan_internal.h" />
|
<ClInclude Include="..\..\src\video\SDL_vulkan_internal.h" />
|
||||||
|
|
|
@ -493,6 +493,7 @@
|
||||||
<ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_rect_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_rect_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
|
||||||
|
<ClInclude Include="..\..\src\video\SDL_stb_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_surface_c.h" />
|
<ClInclude Include="..\..\src\video\SDL_surface_c.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
<ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
|
||||||
<ClInclude Include="..\..\src\video\SDL_vulkan_internal.h" />
|
<ClInclude Include="..\..\src\video\SDL_vulkan_internal.h" />
|
||||||
|
@ -705,6 +706,7 @@
|
||||||
<ClCompile Include="..\..\src\video\SDL_pixels.c" />
|
<ClCompile Include="..\..\src\video\SDL_pixels.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_rect.c" />
|
<ClCompile Include="..\..\src\video\SDL_rect.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
|
<ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
|
||||||
|
<ClCompile Include="..\..\src\video\SDL_stb.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
<ClCompile Include="..\..\src\video\SDL_stretch.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
<ClCompile Include="..\..\src\video\SDL_surface.c" />
|
||||||
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
<ClCompile Include="..\..\src\video\SDL_video.c" />
|
||||||
|
|
|
@ -672,6 +672,9 @@
|
||||||
<ClInclude Include="..\..\src\video\SDL_egl_c.h">
|
<ClInclude Include="..\..\src\video\SDL_egl_c.h">
|
||||||
<Filter>video</Filter>
|
<Filter>video</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\src\video\SDL_stb_c.h">
|
||||||
|
<Filter>video</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\video\SDL_yuv_c.h">
|
<ClInclude Include="..\..\src\video\SDL_yuv_c.h">
|
||||||
<Filter>video</Filter>
|
<Filter>video</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -1292,6 +1295,9 @@
|
||||||
<ClCompile Include="..\..\src\video\SDL_rect.c">
|
<ClCompile Include="..\..\src\video\SDL_rect.c">
|
||||||
<Filter>video</Filter>
|
<Filter>video</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\video\SDL_stb.c">
|
||||||
|
<Filter>video</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\video\SDL_stretch.c">
|
<ClCompile Include="..\..\src\video\SDL_stretch.c">
|
||||||
<Filter>video</Filter>
|
<Filter>video</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
|
@ -516,6 +516,10 @@
|
||||||
F3DDCC5B2AFD42B600B0842B /* SDL_video_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DDCC522AFD42B600B0842B /* SDL_video_c.h */; };
|
F3DDCC5B2AFD42B600B0842B /* SDL_video_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DDCC522AFD42B600B0842B /* SDL_video_c.h */; };
|
||||||
F3DDCC5D2AFD42B600B0842B /* SDL_rect_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DDCC542AFD42B600B0842B /* SDL_rect_impl.h */; };
|
F3DDCC5D2AFD42B600B0842B /* SDL_rect_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DDCC542AFD42B600B0842B /* SDL_rect_impl.h */; };
|
||||||
F3E5A6EB2AD5E0E600293D83 /* SDL_properties.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */; };
|
F3E5A6EB2AD5E0E600293D83 /* SDL_properties.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */; };
|
||||||
|
F3EFA5ED2D5AB97300BCF22F /* SDL_stb_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3EFA5EA2D5AB97300BCF22F /* SDL_stb_c.h */; };
|
||||||
|
F3EFA5EE2D5AB97300BCF22F /* stb_image.h in Headers */ = {isa = PBXBuildFile; fileRef = F3EFA5EC2D5AB97300BCF22F /* stb_image.h */; };
|
||||||
|
F3EFA5EF2D5AB97300BCF22F /* SDL_surface_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3EFA5EB2D5AB97300BCF22F /* SDL_surface_c.h */; };
|
||||||
|
F3EFA5F02D5AB97300BCF22F /* SDL_stb.c in Sources */ = {isa = PBXBuildFile; fileRef = F3EFA5E92D5AB97300BCF22F /* SDL_stb.c */; };
|
||||||
F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; };
|
F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; };
|
||||||
F3F15D7F2D011912007AE210 /* SDL_dialog.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F15D7D2D011912007AE210 /* SDL_dialog.c */; };
|
F3F15D7F2D011912007AE210 /* SDL_dialog.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F15D7D2D011912007AE210 /* SDL_dialog.c */; };
|
||||||
F3F15D802D011912007AE210 /* SDL_dialog_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F15D7E2D011912007AE210 /* SDL_dialog_utils.h */; };
|
F3F15D802D011912007AE210 /* SDL_dialog_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F15D7E2D011912007AE210 /* SDL_dialog_utils.h */; };
|
||||||
|
@ -1079,6 +1083,10 @@
|
||||||
F3DDCC522AFD42B600B0842B /* SDL_video_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_video_c.h; sourceTree = "<group>"; };
|
F3DDCC522AFD42B600B0842B /* SDL_video_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_video_c.h; sourceTree = "<group>"; };
|
||||||
F3DDCC542AFD42B600B0842B /* SDL_rect_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect_impl.h; sourceTree = "<group>"; };
|
F3DDCC542AFD42B600B0842B /* SDL_rect_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_rect_impl.h; sourceTree = "<group>"; };
|
||||||
F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_properties.c; sourceTree = "<group>"; };
|
F3E5A6EA2AD5E0E600293D83 /* SDL_properties.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_properties.c; sourceTree = "<group>"; };
|
||||||
|
F3EFA5E92D5AB97300BCF22F /* SDL_stb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SDL_stb.c; sourceTree = "<group>"; };
|
||||||
|
F3EFA5EA2D5AB97300BCF22F /* SDL_stb_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_stb_c.h; sourceTree = "<group>"; };
|
||||||
|
F3EFA5EB2D5AB97300BCF22F /* SDL_surface_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_surface_c.h; sourceTree = "<group>"; };
|
||||||
|
F3EFA5EC2D5AB97300BCF22F /* stb_image.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stb_image.h; sourceTree = "<group>"; };
|
||||||
F3F07D59269640160074468B /* SDL_hidapi_luna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_luna.c; sourceTree = "<group>"; };
|
F3F07D59269640160074468B /* SDL_hidapi_luna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_luna.c; sourceTree = "<group>"; };
|
||||||
F3F15D7C2D011912007AE210 /* SDL_dialog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_dialog.h; sourceTree = "<group>"; };
|
F3F15D7C2D011912007AE210 /* SDL_dialog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_dialog.h; sourceTree = "<group>"; };
|
||||||
F3F15D7D2D011912007AE210 /* SDL_dialog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SDL_dialog.c; sourceTree = "<group>"; };
|
F3F15D7D2D011912007AE210 /* SDL_dialog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SDL_dialog.c; sourceTree = "<group>"; };
|
||||||
|
@ -1586,43 +1594,47 @@
|
||||||
A7D8A60523E2513D00DCD162 /* dummy */,
|
A7D8A60523E2513D00DCD162 /* dummy */,
|
||||||
A7D8A72123E2513E00DCD162 /* khronos */,
|
A7D8A72123E2513E00DCD162 /* khronos */,
|
||||||
A7D8A5EC23E2513D00DCD162 /* offscreen */,
|
A7D8A5EC23E2513D00DCD162 /* offscreen */,
|
||||||
A7D8A61823E2513D00DCD162 /* uikit */,
|
A7D8A76B23E2513E00DCD162 /* SDL_blit.h */,
|
||||||
A7D8A76C23E2513E00DCD162 /* yuv2rgb */,
|
A7D8A64C23E2513D00DCD162 /* SDL_blit.c */,
|
||||||
A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */,
|
A7D8A66223E2513E00DCD162 /* SDL_blit_0.c */,
|
||||||
A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */,
|
A7D8A6FA23E2513E00DCD162 /* SDL_blit_1.c */,
|
||||||
A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */,
|
A7D8A66423E2513E00DCD162 /* SDL_blit_A.c */,
|
||||||
A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */,
|
|
||||||
A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */,
|
A7D8A73F23E2513E00DCD162 /* SDL_blit_auto.h */,
|
||||||
A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */,
|
A7D8A63F23E2513D00DCD162 /* SDL_blit_auto.c */,
|
||||||
A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */,
|
A7D8A76623E2513E00DCD162 /* SDL_blit_copy.h */,
|
||||||
|
A7D8A61623E2513D00DCD162 /* SDL_blit_copy.c */,
|
||||||
A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */,
|
A7D8A64223E2513D00DCD162 /* SDL_blit_N.c */,
|
||||||
A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */,
|
|
||||||
A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */,
|
A7D8A66323E2513E00DCD162 /* SDL_blit_slow.h */,
|
||||||
A7D8A64C23E2513D00DCD162 /* SDL_blit.c */,
|
A7D8A60223E2513D00DCD162 /* SDL_blit_slow.c */,
|
||||||
A7D8A76B23E2513E00DCD162 /* SDL_blit.h */,
|
|
||||||
A7D8A77323E2513E00DCD162 /* SDL_bmp.c */,
|
A7D8A77323E2513E00DCD162 /* SDL_bmp.c */,
|
||||||
F3DDCC4D2AFD42B500B0842B /* SDL_clipboard_c.h */,
|
|
||||||
A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */,
|
A7D8A67B23E2513E00DCD162 /* SDL_clipboard.c */,
|
||||||
A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */,
|
F3DDCC4D2AFD42B500B0842B /* SDL_clipboard_c.h */,
|
||||||
A7D8A6B623E2513E00DCD162 /* SDL_egl.c */,
|
A7D8A6B623E2513E00DCD162 /* SDL_egl.c */,
|
||||||
|
A7D8A60423E2513D00DCD162 /* SDL_egl_c.h */,
|
||||||
A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */,
|
A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */,
|
||||||
A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */,
|
|
||||||
A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */,
|
A7D8A64D23E2513D00DCD162 /* SDL_pixels.c */,
|
||||||
|
A7D8A74023E2513E00DCD162 /* SDL_pixels_c.h */,
|
||||||
|
A7D8A63423E2513D00DCD162 /* SDL_rect.c */,
|
||||||
A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */,
|
A7D8A60C23E2513D00DCD162 /* SDL_rect_c.h */,
|
||||||
F3DDCC542AFD42B600B0842B /* SDL_rect_impl.h */,
|
F3DDCC542AFD42B600B0842B /* SDL_rect_impl.h */,
|
||||||
A7D8A63423E2513D00DCD162 /* SDL_rect.c */,
|
|
||||||
A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */,
|
|
||||||
A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */,
|
A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */,
|
||||||
|
A7D8A76723E2513E00DCD162 /* SDL_RLEaccel_c.h */,
|
||||||
|
F3EFA5E92D5AB97300BCF22F /* SDL_stb.c */,
|
||||||
|
F3EFA5EA2D5AB97300BCF22F /* SDL_stb_c.h */,
|
||||||
A7D8A60323E2513D00DCD162 /* SDL_stretch.c */,
|
A7D8A60323E2513D00DCD162 /* SDL_stretch.c */,
|
||||||
A7D8A61423E2513D00DCD162 /* SDL_surface.c */,
|
A7D8A61423E2513D00DCD162 /* SDL_surface.c */,
|
||||||
|
F3EFA5EB2D5AB97300BCF22F /* SDL_surface_c.h */,
|
||||||
A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */,
|
A7D8A61723E2513D00DCD162 /* SDL_sysvideo.h */,
|
||||||
|
A7D8A60E23E2513D00DCD162 /* SDL_video.c */,
|
||||||
F3DDCC522AFD42B600B0842B /* SDL_video_c.h */,
|
F3DDCC522AFD42B600B0842B /* SDL_video_c.h */,
|
||||||
E4F7981F2AD8D87F00669F54 /* SDL_video_unsupported.c */,
|
E4F7981F2AD8D87F00669F54 /* SDL_video_unsupported.c */,
|
||||||
A7D8A60E23E2513D00DCD162 /* SDL_video.c */,
|
|
||||||
A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */,
|
A7D8A63E23E2513D00DCD162 /* SDL_vulkan_internal.h */,
|
||||||
A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */,
|
A7D8A64023E2513D00DCD162 /* SDL_vulkan_utils.c */,
|
||||||
A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */,
|
|
||||||
A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */,
|
A7D8A67C23E2513E00DCD162 /* SDL_yuv.c */,
|
||||||
|
A7D8A76A23E2513E00DCD162 /* SDL_yuv_c.h */,
|
||||||
|
F3EFA5EC2D5AB97300BCF22F /* stb_image.h */,
|
||||||
|
A7D8A61823E2513D00DCD162 /* uikit */,
|
||||||
|
A7D8A76C23E2513E00DCD162 /* yuv2rgb */,
|
||||||
);
|
);
|
||||||
path = video;
|
path = video;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -2458,6 +2470,9 @@
|
||||||
A7D8BB6F23E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB6F23E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A7D8AECA23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */,
|
A7D8AECA23E2514100DCD162 /* SDL_cocoaclipboard.h in Headers */,
|
||||||
A7D8AF1223E2514100DCD162 /* SDL_cocoaevents.h in Headers */,
|
A7D8AF1223E2514100DCD162 /* SDL_cocoaevents.h in Headers */,
|
||||||
|
F3EFA5ED2D5AB97300BCF22F /* SDL_stb_c.h in Headers */,
|
||||||
|
F3EFA5EE2D5AB97300BCF22F /* stb_image.h in Headers */,
|
||||||
|
F3EFA5EF2D5AB97300BCF22F /* SDL_surface_c.h in Headers */,
|
||||||
A7D8AE8E23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE8E23E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A7D8AF0623E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */,
|
A7D8AF0623E2514100DCD162 /* SDL_cocoamessagebox.h in Headers */,
|
||||||
A7D8AEB223E2514100DCD162 /* SDL_cocoametalview.h in Headers */,
|
A7D8AEB223E2514100DCD162 /* SDL_cocoametalview.h in Headers */,
|
||||||
|
@ -2950,6 +2965,7 @@
|
||||||
566E26CF246274CC00718109 /* SDL_syslocale.m in Sources */,
|
566E26CF246274CC00718109 /* SDL_syslocale.m in Sources */,
|
||||||
A7D8AFC023E2514200DCD162 /* SDL_egl.c in Sources */,
|
A7D8AFC023E2514200DCD162 /* SDL_egl.c in Sources */,
|
||||||
A7D8AC3323E2514100DCD162 /* SDL_RLEaccel.c in Sources */,
|
A7D8AC3323E2514100DCD162 /* SDL_RLEaccel.c in Sources */,
|
||||||
|
F3EFA5F02D5AB97300BCF22F /* SDL_stb.c in Sources */,
|
||||||
A7D8BBB123E2514500DCD162 /* SDL_assert.c in Sources */,
|
A7D8BBB123E2514500DCD162 /* SDL_assert.c in Sources */,
|
||||||
A7D8B3DA23E2514300DCD162 /* SDL_bmp.c in Sources */,
|
A7D8B3DA23E2514300DCD162 /* SDL_bmp.c in Sources */,
|
||||||
A7D8B96E23E2514400DCD162 /* SDL_stdlib.c in Sources */,
|
A7D8B96E23E2514400DCD162 /* SDL_stdlib.c in Sources */,
|
||||||
|
|
|
@ -161,6 +161,7 @@ def find_symbols_in_file(file: pathlib.Path) -> int:
|
||||||
"src/libm",
|
"src/libm",
|
||||||
"src/hidapi",
|
"src/hidapi",
|
||||||
"src/video/khronos",
|
"src/video/khronos",
|
||||||
|
"src/video/stb_image.h",
|
||||||
"include/SDL3",
|
"include/SDL3",
|
||||||
"build-scripts/gen_audio_resampler_filter.c",
|
"build-scripts/gen_audio_resampler_filter.c",
|
||||||
"build-scripts/gen_audio_channel_conversion.c",
|
"build-scripts/gen_audio_channel_conversion.c",
|
||||||
|
|
|
@ -191,6 +191,11 @@
|
||||||
#define SDL_VIDEO_RENDER_SW 1
|
#define SDL_VIDEO_RENDER_SW 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* STB image conversion */
|
||||||
|
#if !defined(SDL_HAVE_STB) && !defined(SDL_LEAN_AND_MEAN)
|
||||||
|
#define SDL_HAVE_STB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* YUV formats
|
/* YUV formats
|
||||||
- handling of YUV surfaces
|
- handling of YUV surfaces
|
||||||
- blitting and conversion functions */
|
- blitting and conversion functions */
|
||||||
|
|
|
@ -1281,7 +1281,14 @@ static SDL_PixelFormat GetClosestSupportedFormat(SDL_Renderer *renderer, SDL_Pix
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (SDL_ISPIXELFORMAT_FOURCC(format)) {
|
if (format == SDL_PIXELFORMAT_MJPG) {
|
||||||
|
// We'll decode to SDL_PIXELFORMAT_RGBA32
|
||||||
|
for (i = 0; i < renderer->num_texture_formats; ++i) {
|
||||||
|
if (renderer->texture_formats[i] == SDL_PIXELFORMAT_RGBA32) {
|
||||||
|
return renderer->texture_formats[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (SDL_ISPIXELFORMAT_FOURCC(format)) {
|
||||||
// Look for an exact match
|
// Look for an exact match
|
||||||
for (i = 0; i < renderer->num_texture_formats; ++i) {
|
for (i = 0; i < renderer->num_texture_formats; ++i) {
|
||||||
if (renderer->texture_formats[i] == format) {
|
if (renderer->texture_formats[i] == format) {
|
||||||
|
@ -1443,7 +1450,9 @@ SDL_Texture *SDL_CreateTextureWithProperties(SDL_Renderer *renderer, SDL_Propert
|
||||||
texture->next = texture->native;
|
texture->next = texture->native;
|
||||||
renderer->textures = texture;
|
renderer->textures = texture;
|
||||||
|
|
||||||
if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) {
|
if (texture->format == SDL_PIXELFORMAT_MJPG) {
|
||||||
|
// We have a custom decode + upload path for this
|
||||||
|
} else if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) {
|
||||||
#ifdef SDL_HAVE_YUV
|
#ifdef SDL_HAVE_YUV
|
||||||
texture->yuv = SDL_SW_CreateYUVTexture(texture->format, texture->colorspace, w, h);
|
texture->yuv = SDL_SW_CreateYUVTexture(texture->format, texture->colorspace, w, h);
|
||||||
#else
|
#else
|
||||||
|
|
92
src/video/SDL_stb.c
Normal file
92
src/video/SDL_stb.c
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
*/
|
||||||
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
|
#include "SDL_stb_c.h"
|
||||||
|
|
||||||
|
|
||||||
|
// We currently only support JPEG, but we could add other image formats if we wanted
|
||||||
|
#ifdef SDL_HAVE_STB
|
||||||
|
#define malloc SDL_malloc
|
||||||
|
#define realloc SDL_realloc
|
||||||
|
#define free SDL_free
|
||||||
|
#undef memcpy
|
||||||
|
#define memcpy SDL_memcpy
|
||||||
|
#undef memset
|
||||||
|
#define memset SDL_memset
|
||||||
|
#undef strcmp
|
||||||
|
#define strcmp SDL_strcmp
|
||||||
|
#undef strncmp
|
||||||
|
#define strncmp SDL_strncmp
|
||||||
|
#define strtol SDL_strtol
|
||||||
|
|
||||||
|
#define abs SDL_abs
|
||||||
|
#define pow SDL_pow
|
||||||
|
#define ldexp SDL_scalbn
|
||||||
|
|
||||||
|
#define STB_INTERNAL_SDL
|
||||||
|
#define STB_IMAGE_STATIC
|
||||||
|
#define STBI_FAILURE_USERMSG
|
||||||
|
#if defined(SDL_NEON_INTRINSICS)
|
||||||
|
#define STBI_NEON
|
||||||
|
#endif
|
||||||
|
#define STBI_ONLY_JPEG
|
||||||
|
#define STBI_NO_GIF
|
||||||
|
#define STBI_NO_PNG
|
||||||
|
#define STBI_NO_HDR
|
||||||
|
#define STBI_NO_LINEAR
|
||||||
|
#define STBI_NO_ZLIB
|
||||||
|
#define STBI_NO_STDIO
|
||||||
|
#define STBI_ASSERT SDL_assert
|
||||||
|
#define STB_IMAGE_IMPLEMENTATION
|
||||||
|
#include "stb_image.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool SDL_ConvertPixels_STB(int width, int height,
|
||||||
|
SDL_PixelFormat src_format, SDL_Colorspace src_colorspace, SDL_PropertiesID src_properties, const void *src, int src_pitch,
|
||||||
|
SDL_PixelFormat dst_format, SDL_Colorspace dst_colorspace, SDL_PropertiesID dst_properties, void *dst, int dst_pitch)
|
||||||
|
{
|
||||||
|
#ifdef SDL_HAVE_STB
|
||||||
|
if (src_colorspace != dst_colorspace) {
|
||||||
|
return SDL_SetError("SDL_ConvertPixels_STB: colorspace conversion not supported");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (src_format == dst_format) {
|
||||||
|
if (src == dst) {
|
||||||
|
// Nothing to do
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int w = 0, h = 0, format = 0;
|
||||||
|
stbi_uc *pixels = stbi_load_from_memory((const stbi_uc *)src, src_pitch, &w, &h, &format, 4);
|
||||||
|
if (!pixels) {
|
||||||
|
return SDL_SetError("Couldn't decode image: %s", stbi_failure_reason());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool result = SDL_ConvertPixelsAndColorspace(w, h, SDL_PIXELFORMAT_RGBA32, src_colorspace, src_properties, pixels, width * 4, dst_format, dst_colorspace, dst_properties, dst, dst_pitch);
|
||||||
|
stbi_image_free(pixels);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
#else
|
||||||
|
return SDL_SetError("SDL not built with STB image support");
|
||||||
|
#endif
|
||||||
|
}
|
31
src/video/SDL_stb_c.h
Normal file
31
src/video/SDL_stb_c.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SDL_stb_c_h_
|
||||||
|
#define SDL_stb_c_h_
|
||||||
|
|
||||||
|
#include "SDL_internal.h"
|
||||||
|
|
||||||
|
// Image conversion functions
|
||||||
|
|
||||||
|
extern bool SDL_ConvertPixels_STB(int width, int height, SDL_PixelFormat src_format, SDL_Colorspace src_colorspace, SDL_PropertiesID src_properties, const void *src, int src_pitch, SDL_PixelFormat dst_format, SDL_Colorspace dst_colorspace, SDL_PropertiesID dst_properties, void *dst, int dst_pitch);
|
||||||
|
|
||||||
|
#endif // SDL_stb_c_h_
|
|
@ -24,6 +24,7 @@
|
||||||
#include "SDL_video_c.h"
|
#include "SDL_video_c.h"
|
||||||
#include "SDL_RLEaccel_c.h"
|
#include "SDL_RLEaccel_c.h"
|
||||||
#include "SDL_pixels_c.h"
|
#include "SDL_pixels_c.h"
|
||||||
|
#include "SDL_stb_c.h"
|
||||||
#include "SDL_yuv_c.h"
|
#include "SDL_yuv_c.h"
|
||||||
#include "../render/SDL_sysrender.h"
|
#include "../render/SDL_sysrender.h"
|
||||||
|
|
||||||
|
@ -2277,6 +2278,10 @@ bool SDL_ConvertPixelsAndColorspace(int width, int height,
|
||||||
dst_colorspace = SDL_GetDefaultColorspaceForFormat(dst_format);
|
dst_colorspace = SDL_GetDefaultColorspaceForFormat(dst_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (src_format == SDL_PIXELFORMAT_MJPG) {
|
||||||
|
return SDL_ConvertPixels_STB(width, height, src_format, src_colorspace, src_properties, src, src_pitch, dst_format, dst_colorspace, dst_properties, dst, dst_pitch);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef SDL_HAVE_YUV
|
#ifdef SDL_HAVE_YUV
|
||||||
if (SDL_ISPIXELFORMAT_FOURCC(src_format) && SDL_ISPIXELFORMAT_FOURCC(dst_format)) {
|
if (SDL_ISPIXELFORMAT_FOURCC(src_format) && SDL_ISPIXELFORMAT_FOURCC(dst_format)) {
|
||||||
return SDL_ConvertPixels_YUV_to_YUV(width, height, src_format, src_colorspace, src_properties, src, src_pitch, dst_format, dst_colorspace, dst_properties, dst, dst_pitch);
|
return SDL_ConvertPixels_YUV_to_YUV(width, height, src_format, src_colorspace, src_properties, src, src_pitch, dst_format, dst_colorspace, dst_properties, dst, dst_pitch);
|
||||||
|
|
8030
src/video/stb_image.h
Normal file
8030
src/video/stb_image.h
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue