mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +00:00 
			
		
		
		
	Added initial MJPG support using stb_image
This commit is contained in:
		| @@ -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
											
										
									
								
							
		Reference in New Issue
	
	Block a user
	 Sam Lantinga
					Sam Lantinga