Skip to content

Instantly share code, notes, and snippets.

@katsaii
Last active March 21, 2021 15:58
Show Gist options
  • Save katsaii/61fe203e7b59fa4cbebd82886c1e7268 to your computer and use it in GitHub Desktop.
Save katsaii/61fe203e7b59fa4cbebd82886c1e7268 to your computer and use it in GitHub Desktop.
Returns the size (in bytes) of a Game Maker vertex format.
/// @desc Returns the size (in bytes) of a vertex format.
/// @param vformat {Integer} The vertex format to inspect.
/// @author Kat @katsaii
var max_size = 256;
/* 32 bytes is a realistic size.
* 256 is an, unrealistic, finite upper limit.
*/
var buff = buffer_create(max_size, buffer_grow, 1);
var vbuff = vertex_create_buffer_from_buffer(buff, argument0);
var vbuff_buff = buffer_create_from_vertex_buffer(vbuff, buffer_grow, 1);
var vcount = vertex_get_number(vbuff);
var size = vcount > 0 ? floor(buffer_get_size(vbuff_buff) / vcount) : -1;
buffer_delete(buff);
vertex_delete_buffer(vbuff);
buffer_delete(vbuff_buff);
return size;
@DragoniteSpam
Copy link

Seems that this doesn't work anymore:

buffer_create_from_vertex_buffer: Can't create buffer from empty vertex buffer.

Ah, well.

Do you reckon it would be useful to send YYG a feature request to add something like this officially? I occasionally have a need for it.

@katsaii
Copy link
Author

katsaii commented Mar 21, 2021

Seems that this doesn't work anymore:

buffer_create_from_vertex_buffer: Can't create buffer from empty vertex buffer.

Ah, well.

Do you reckon it would be useful to send YYG a feature request to add something like this officially? I occasionally have a need for it.

I think that it's worth it! It's definitely something that is useful for writing code that doesn't assume a certain vertex format.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment