/**
         * @brief Constructs a new UniformBuffer, allocating a data buffer matching the shader data.
         * @param[in] shader_data (ShaderData) The shader reflector data
         * @param[in] data_buffer (byte[]) The raw data to fill the uniform buffer with
         */
        public UniformBuffer(ShaderData shader_data, byte[] data_buffer)
        {
            // Construct data / name maps
            ConstructDataMaps("", shader_data.uniform_buffers);

            if (Size == 0)
            {
                return;
            }

            FromDataBuffer(data_buffer);
        }
 /**
  * @brief Constructs a new UniformBuffer, allocating a data buffer matching the shader data.
  * @param[in] shader_data (foundation::ShaderData&) The shader reflector data
  */
 public UniformBuffer(ShaderData shader_data)
 {
     // Construct data / name maps
     ConstructDataMaps("", shader_data.uniform_buffers);
 }