X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Freflectdata.h;h=981f45f000f7b02d926af39d64dd19efaf990508;hb=cebf1330ef6773b7b4496dc279ec02a7ca4351bb;hp=2c0d7fe3e1c0765586726a2dfb4acb7e28616cdc;hpb=0a096b9bc02a67ea4a27645907c6b9d1fbdaae85;p=libs%2Fgl.git diff --git a/source/core/reflectdata.h b/source/core/reflectdata.h index 2c0d7fe3..981f45f0 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; @@ -31,7 +39,6 @@ struct ReflectData unsigned matrix_stride = 0; DataType type = VOID; Tag tag; - int descriptor_set = 0; int binding = -1; }; @@ -39,8 +46,7 @@ struct ReflectData { std::string name; unsigned data_size = 0; - int descriptor_set = 0; - int bind_point = -1; + int bind_point = DEFAULT_BLOCK; std::vector uniforms; LayoutHash layout_hash = 0; @@ -61,8 +67,13 @@ struct ReflectData LayoutHash layout_hash = 0; std::vector attributes; unsigned n_clip_distances = 0; + unsigned n_descriptor_sets = 0; + unsigned push_constants_size = 0; + std::vector used_bindings; + LinAl::Vector compute_wg_size; void update_layout_hash(); + void update_used_bindings(); }; } // namespace GL