X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Freflectdata.h;h=ee98634ba6fa187f6607f35caefd3bdf4e63af3a;hb=3efe3bab1c8290bd49a957ebec0ad97e58a35fcf;hp=fff190a52dcbde157e98f042e7ead8534d42713b;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;p=libs%2Fgl.git diff --git a/source/core/reflectdata.h b/source/core/reflectdata.h index fff190a5..ee98634b 100644 --- a/source/core/reflectdata.h +++ b/source/core/reflectdata.h @@ -14,6 +14,14 @@ Reflection data for shader programs. */ struct ReflectData { + enum + { + DEFAULT_BLOCK = -1, + PUSH_CONSTANT = -2, + UNIFORM_BLOCK_BINDING = 0, + TEXTURE_BINDING = 0x1000000 + }; + typedef unsigned LayoutHash; struct UniformBlockInfo; @@ -38,7 +46,7 @@ struct ReflectData { std::string name; unsigned data_size = 0; - int bind_point = -1; + int bind_point = DEFAULT_BLOCK; std::vector uniforms; LayoutHash layout_hash = 0; @@ -49,17 +57,21 @@ struct ReflectData struct AttributeInfo { std::string name; - unsigned location = -1; + int location = -1; unsigned array_size = 0; DataType type = VOID; }; std::vector uniform_blocks; std::vector uniforms; - LayoutHash layout_hash; + LayoutHash layout_hash = 0; std::vector attributes; + unsigned n_clip_distances = 0; + unsigned n_descriptor_sets = 0; + std::vector used_bindings; void update_layout_hash(); + void update_used_bindings(); }; } // namespace GL