9 #ifndef hifi_gpu_Forward_h
10 #define hifi_gpu_Forward_h
17 #include <glm/glm.hpp>
20 using Mutex = std::mutex;
21 using Lock = std::unique_lock<Mutex>;
24 using BatchPointer = std::shared_ptr<Batch>;
26 using BackendPointer = std::shared_ptr<Backend>;
28 using ContextPointer = std::shared_ptr<Context>;
31 using FramePointer = std::shared_ptr<Frame>;
34 using uint32 = uint32_t;
35 using int32 = int32_t;
36 using uint16 = uint16_t;
37 using int16 = int16_t;
38 using uint8 = uint8_t;
43 static const Size INVALID_SIZE = (Size)-1;
45 using Offset = size_t;
46 using Offsets = std::vector<Offset>;
48 using Mat4 = glm::mat4;
49 using Mat3 = glm::mat3;
50 using Vec4 = glm::vec4;
51 using Vec4i = glm::ivec4;
52 using Vec3 = glm::vec3;
53 using Vec2 = glm::vec2;
54 using Vec2i = glm::ivec2;
55 using Vec2u = glm::uvec2;
56 using Vec3u = glm::uvec3;
57 using Vec3u = glm::uvec3;
60 using Format = Element;
62 using SwapchainPointer = std::shared_ptr<Swapchain>;
64 using FramebufferPointer = std::shared_ptr<Framebuffer>;
66 using PipelinePointer = std::shared_ptr<Pipeline>;
67 using Pipelines = std::vector<PipelinePointer>;
69 using QueryPointer = std::shared_ptr<Query>;
70 using Queries = std::vector<QueryPointer>;
73 using BufferPointer = std::shared_ptr<Buffer>;
74 using Buffers = std::vector<BufferPointer>;
77 using ShaderPointer = std::shared_ptr<Shader>;
78 using Shaders = std::vector<ShaderPointer>;
80 using StatePointer = std::shared_ptr<State>;
81 using States = std::vector<StatePointer>;
84 using BufferStreamPointer = std::shared_ptr<BufferStream>;
86 class SphericalHarmonics;
87 using SHPointer = std::shared_ptr<SphericalHarmonics>;
90 using TexturePointer = std::shared_ptr<Texture>;
91 using TextureWeakPointer = std::weak_ptr<Texture>;
92 using Textures = std::vector<TexturePointer>;
94 using TextureViews = std::vector<TextureView>;
96 using TextureTablePointer = std::shared_ptr<TextureTable>;
100 bool isStereo()
const {
101 return _enable && !_contextDisable;
103 bool _enable{
false };
104 bool _contextDisable {
false };
105 bool _skybox{
false };
109 Mat4 _eyeProjections[2];
117 virtual ~GPUObject() =
default;
120 class GPUObjectPointer {
122 using GPUObjectUniquePointer = std::unique_ptr<GPUObject>;
125 mutable GPUObjectUniquePointer _gpuObject;
126 void setGPUObject(GPUObject* gpuObject)
const { _gpuObject.reset(gpuObject); }
127 GPUObject* getGPUObject()
const {
return _gpuObject.get(); }
129 friend class Backend;
Provides the Mat4 scripting interface.
Definition: Mat4.h:44
Base class for resources.
Definition: ResourceCache.h:409
A simple object wrapper for an OpenGL texture.
Definition: material-networking/src/material-networking/TextureCache.h:39
Provides the Vec3 scripting interface.
Definition: Vec3.h:80