@@ -589,6 +589,7 @@ static SDL_RenderCommand *PrepQueueCmdDraw(SDL_Renderer *renderer, const SDL_Ren
589589 if (renderer -> gpu_render_state ) {
590590 renderer -> gpu_render_state -> last_command_generation = renderer -> render_command_generation ;
591591 }
592+ cmd -> data .draw .tentatively_named_rendergeometry_position_coordinate_count = 2 ;
592593 }
593594 }
594595 return cmd ;
@@ -722,7 +723,7 @@ static bool QueueCmdCopyEx(SDL_Renderer *renderer, SDL_Texture *texture,
722723}
723724
724725static bool QueueCmdGeometry (SDL_Renderer * renderer , SDL_Texture * texture ,
725- const float * xy , int xy_stride ,
726+ const float * pos , int pos_stride , Uint8 pos_len ,
726727 const SDL_FColor * color , int color_stride ,
727728 const float * uv , int uv_stride ,
728729 int num_vertices ,
@@ -734,8 +735,9 @@ static bool QueueCmdGeometry(SDL_Renderer *renderer, SDL_Texture *texture,
734735 cmd = PrepQueueCmdDraw (renderer , SDL_RENDERCMD_GEOMETRY , texture );
735736 if (cmd ) {
736737 cmd -> data .draw .texture_address_mode = texture_address_mode ;
738+ cmd -> data .draw .tentatively_named_rendergeometry_position_coordinate_count = pos_len ;
737739 result = renderer -> QueueGeometry (renderer , cmd , texture ,
738- xy , xy_stride ,
740+ pos , pos_stride ,
739741 color , color_stride , uv , uv_stride ,
740742 num_vertices , indices , num_indices , size_indices ,
741743 scale_x , scale_y );
@@ -3737,7 +3739,8 @@ bool SDL_RenderLines(SDL_Renderer *renderer, const SDL_FPoint *points, int count
37373739 }
37383740
37393741 result = QueueCmdGeometry (renderer , NULL ,
3740- xy , xy_stride , & renderer -> color , 0 /* color_stride */ , NULL , 0 ,
3742+ xy , xy_stride , 2 ,
3743+ & renderer -> color , 0 /* color_stride */ , NULL , 0 ,
37413744 num_vertices , indices , num_indices , size_indices ,
37423745 1.0f , 1.0f , SDL_TEXTURE_ADDRESS_CLAMP );
37433746 }
@@ -3918,7 +3921,8 @@ static bool SDL_RenderTextureInternal(SDL_Renderer *renderer, SDL_Texture *textu
39183921 xy [7 ] = maxy ;
39193922
39203923 result = QueueCmdGeometry (renderer , texture ,
3921- xy , xy_stride , & texture -> color , 0 /* color_stride */ , uv , uv_stride ,
3924+ xy , xy_stride , 2 ,
3925+ & texture -> color , 0 /* color_stride */ , uv , uv_stride ,
39223926 num_vertices , indices , num_indices , size_indices ,
39233927 scale_x , scale_y , SDL_TEXTURE_ADDRESS_CLAMP );
39243928 } else {
@@ -4079,7 +4083,7 @@ bool SDL_RenderTextureAffine(SDL_Renderer *renderer, SDL_Texture *texture,
40794083
40804084 result = QueueCmdGeometry (
40814085 renderer , texture ,
4082- xy , xy_stride ,
4086+ xy , xy_stride , 2 ,
40834087 & texture -> color , 0 /* color_stride */ ,
40844088 uv , uv_stride ,
40854089 num_vertices , indices , num_indices , size_indices ,
@@ -4231,7 +4235,8 @@ bool SDL_RenderTextureRotated(SDL_Renderer *renderer, SDL_Texture *texture,
42314235 xy [7 ] = (s_minx + c_maxy ) + centery ;
42324236
42334237 result = QueueCmdGeometry (renderer , texture ,
4234- xy , xy_stride , & texture -> color , 0 /* color_stride */ , uv , uv_stride ,
4238+ xy , xy_stride , 2 ,
4239+ & texture -> color , 0 /* color_stride */ , uv , uv_stride ,
42354240 num_vertices , indices , num_indices , size_indices ,
42364241 scale_x , scale_y , SDL_TEXTURE_ADDRESS_CLAMP );
42374242 } else {
@@ -4283,7 +4288,8 @@ static bool SDL_RenderTextureTiled_Wrap(SDL_Renderer *renderer, SDL_Texture *tex
42834288
42844289 const SDL_RenderViewState * view = renderer -> view ;
42854290 return QueueCmdGeometry (renderer , texture ,
4286- xy , xy_stride , & texture -> color , 0 /* color_stride */ , uv , uv_stride ,
4291+ xy , xy_stride , 2 ,
4292+ & texture -> color , 0 /* color_stride */ , uv , uv_stride ,
42874293 num_vertices , indices , num_indices , size_indices ,
42884294 view -> current_scale .x , view -> current_scale .y , SDL_TEXTURE_ADDRESS_WRAP );
42894295}
@@ -5030,7 +5036,8 @@ static bool SDLCALL SDL_SW_RenderGeometryRaw(SDL_Renderer *renderer,
50305036 SDL_Log ("Triangle %d %d %d - is_uniform:%d is_rectangle:%d" , prev [0 ], prev [1 ], prev [2 ], is_uniform , is_rectangle );
50315037#endif
50325038 result = QueueCmdGeometry (renderer , texture ,
5033- xy , xy_stride , color , color_stride , uv , uv_stride ,
5039+ xy , xy_stride , 2 ,
5040+ color , color_stride , uv , uv_stride ,
50345041 num_vertices , prev , 3 , 4 ,
50355042 scale_x , scale_y , SDL_TEXTURE_ADDRESS_CLAMP );
50365043 if (!result ) {
@@ -5050,7 +5057,8 @@ static bool SDLCALL SDL_SW_RenderGeometryRaw(SDL_Renderer *renderer,
50505057 SDL_Log ("Last triangle %d %d %d" , prev [0 ], prev [1 ], prev [2 ]);
50515058#endif
50525059 result = QueueCmdGeometry (renderer , texture ,
5053- xy , xy_stride , color , color_stride , uv , uv_stride ,
5060+ xy , xy_stride , 2 ,
5061+ color , color_stride , uv , uv_stride ,
50545062 num_vertices , prev , 3 , 4 ,
50555063 scale_x , scale_y , SDL_TEXTURE_ADDRESS_CLAMP );
50565064 if (!result ) {
@@ -5074,6 +5082,22 @@ bool SDL_RenderGeometryRaw(SDL_Renderer *renderer,
50745082 const float * uv , int uv_stride ,
50755083 int num_vertices ,
50765084 const void * indices , int num_indices , int size_indices )
5085+ {
5086+ return SDL_RenderGeometryRawEx (renderer , texture ,
5087+ xy , xy_stride , 2 ,
5088+ color , color_stride ,
5089+ uv , uv_stride ,
5090+ num_vertices ,
5091+ indices , num_indices , size_indices );
5092+ }
5093+
5094+ bool SDL_RenderGeometryRawEx (SDL_Renderer * renderer ,
5095+ SDL_Texture * texture ,
5096+ const float * xy , int xy_stride , Uint8 pos_len ,
5097+ const SDL_FColor * color , int color_stride ,
5098+ const float * uv , int uv_stride ,
5099+ int num_vertices ,
5100+ const void * indices , int num_indices , int size_indices )
50775101{
50785102 int i ;
50795103 int count = indices ? num_indices : num_vertices ;
@@ -5177,7 +5201,8 @@ bool SDL_RenderGeometryRaw(SDL_Renderer *renderer,
51775201
51785202 const SDL_RenderViewState * view = renderer -> view ;
51795203 return QueueCmdGeometry (renderer , texture ,
5180- xy , xy_stride , color , color_stride , uv , uv_stride ,
5204+ xy , xy_stride , pos_len ,
5205+ color , color_stride , uv , uv_stride ,
51815206 num_vertices , indices , num_indices , size_indices ,
51825207 view -> current_scale .x , view -> current_scale .y ,
51835208 texture_address_mode );
0 commit comments