aboutsummaryrefslogtreecommitdiff
path: root/include/RenderBackend/OpenGL/DeviceFrame.hpp
blob: 3fa7fe7a08484e11388b3a630c1bfb037504759d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once

#include "../../types.hpp"
#include "../../utils.hpp"
#include <vector>

namespace amalgine
{
    class DeviceMemory;
    class ShaderProgram;
    
    class DeviceFrame
    {
        DISABLE_COPY(DeviceFrame)
    public:
        DeviceFrame();
        ~DeviceFrame();
        
        // The returned pointers cleaned when the frame is cleaned. Do not deallocate the returned pointer!
        DeviceMemory* alloc();
        void draw(ShaderProgram *shader);
    private:
        u32 vertexArrayObjectId;
        std::vector<DeviceMemory*> buffers;
    };
}