// // helper.hpp // graphics // // Created by Sam Jaffe on 5/18/19. // Copyright © 2019 Sam Jaffe. All rights reserved. // #pragma once #include #include #include "game/graphics/graphics_fwd.h" #include "game/math/math_fwd.hpp" #include "vector/vector.hpp" namespace graphics { namespace textures { enum class format : unsigned int { RGB, RGBA }; struct external_data { external_data(std::string const & abs_path); ~external_data(); format color; math::vec2i size; void * buffer; }; } namespace shaders { enum class type : unsigned int { FRAGMENT, VERTEX }; } namespace materials { enum class uniform : unsigned int { NORMAL, DIFFUSE, SPECULAR }; } } namespace std { template <> struct hash { std::size_t operator()(graphics::shaders::type tp) const { return std::hash()(static_cast(tp)); } }; template <> struct hash { std::size_t operator()(graphics::materials::uniform uf) const { return std::hash()(static_cast(uf)); } }; }