X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fmodule.h;h=6ca522a5563d8a79348563f4c6170cc8ba2efcb6;hp=3492a5ded49b795ca37a808a9c8a403fed353d60;hb=1f71ec73edacd6c1bd230abace3cb791eb2ca759;hpb=c5366b68add58fbc4889186125f15205e093e310 diff --git a/source/core/module.h b/source/core/module.h index 3492a5de..6ca522a5 100644 --- a/source/core/module.h +++ b/source/core/module.h @@ -126,11 +126,16 @@ public: bool operator==(const Variable &) const; }; - struct SpecConstant + struct Constant { std::string name; - unsigned constant_id; + int constant_id; DataType type; + union + { + int i_value; + float f_value; + }; }; private: @@ -150,12 +155,11 @@ private: typedef std::vector::const_iterator CodeIterator; std::map names; - std::map constants; + std::map constants; std::map types; std::map entry_points; std::map structs; std::map variables; - std::map spec_constants; static UInt32 get_opcode(UInt32); static CodeIterator get_op_end(const CodeIterator &); @@ -177,8 +181,6 @@ private: void reflect_struct_type(CodeIterator); void reflect_pointer_type(CodeIterator); void reflect_constant(CodeIterator); - void reflect_spec_constant_bool(CodeIterator); - void reflect_spec_constant(CodeIterator); void reflect_variable(CodeIterator); void reflect_decorate(CodeIterator); void reflect_member_decorate(CodeIterator); @@ -188,7 +190,7 @@ private: std::vector entry_points; std::vector structs; std::vector variables; - std::vector spec_constants; + std::vector spec_constants; public: SpirVModule() { } @@ -209,7 +211,7 @@ public: const std::vector &get_code() const { return code; } const std::vector &get_entry_points() const { return entry_points; } const std::vector &get_variables() const { return variables; } - const std::vector &get_spec_constants() const { return spec_constants; } + const std::vector &get_spec_constants() const { return spec_constants; } }; } // namespace GL