mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-07-09 02:39:42 +00:00
metal: check MTLBuffer allocations for nil before using their contents.
(cherry picked from commit e1b3c8afd5)
This commit is contained in:
@@ -1564,6 +1564,9 @@ static bool SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, c
|
||||
if (statecache->shader_constants_dirty ||
|
||||
SDL_memcmp(shader_constants, &statecache->shader_constants, sizeof(*shader_constants)) != 0) {
|
||||
id<MTLBuffer> mtlbufconstants = [data.mtldevice newBufferWithLength:sizeof(*shader_constants) options:MTLResourceStorageModeShared];
|
||||
if (mtlbufconstants == nil) {
|
||||
return SDL_OutOfMemory();
|
||||
}
|
||||
mtlbufconstants.label = @"SDL shader constants data";
|
||||
SDL_memcpy([mtlbufconstants contents], shader_constants, sizeof(*shader_constants));
|
||||
[data.mtlcmdencoder setFragmentBuffer:mtlbufconstants offset:0 atIndex:0];
|
||||
@@ -1734,6 +1737,9 @@ static bool METAL_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd
|
||||
* practices guide recommends this approach for streamed vertex data.
|
||||
*/
|
||||
mtlbufvertex = [data.mtldevice newBufferWithLength:vertsize options:MTLResourceStorageModeShared];
|
||||
if (mtlbufvertex == nil) {
|
||||
return SDL_OutOfMemory();
|
||||
}
|
||||
mtlbufvertex.label = @"SDL vertex data";
|
||||
SDL_memcpy([mtlbufvertex contents], vertices, vertsize);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user