blob: 9eb4abf9216461a78ff5691d916f8b5e02c2fee2 [file] [log] [blame]
Jamie Madill9e54b5a2016-05-25 12:57:39 -04001//
2// Copyright 2016 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6// FramebufferVk.h:
7// Defines the class interface for FramebufferVk, implementing FramebufferImpl.
8//
9
10#ifndef LIBANGLE_RENDERER_VULKAN_FRAMEBUFFERVK_H_
11#define LIBANGLE_RENDERER_VULKAN_FRAMEBUFFERVK_H_
12
13#include "libANGLE/renderer/FramebufferImpl.h"
14
15namespace rx
16{
17
18class FramebufferVk : public FramebufferImpl
19{
20 public:
21 FramebufferVk(const gl::FramebufferState &state);
22 ~FramebufferVk() override;
23
24 gl::Error discard(size_t count, const GLenum *attachments) override;
25 gl::Error invalidate(size_t count, const GLenum *attachments) override;
26 gl::Error invalidateSub(size_t count,
27 const GLenum *attachments,
28 const gl::Rectangle &area) override;
29
30 gl::Error clear(ContextImpl *context, GLbitfield mask) override;
31 gl::Error clearBufferfv(ContextImpl *context,
32 GLenum buffer,
33 GLint drawbuffer,
34 const GLfloat *values) override;
35 gl::Error clearBufferuiv(ContextImpl *context,
36 GLenum buffer,
37 GLint drawbuffer,
38 const GLuint *values) override;
39 gl::Error clearBufferiv(ContextImpl *context,
40 GLenum buffer,
41 GLint drawbuffer,
42 const GLint *values) override;
43 gl::Error clearBufferfi(ContextImpl *context,
44 GLenum buffer,
45 GLint drawbuffer,
46 GLfloat depth,
47 GLint stencil) override;
48
49 GLenum getImplementationColorReadFormat() const override;
50 GLenum getImplementationColorReadType() const override;
51 gl::Error readPixels(ContextImpl *context,
52 const gl::Rectangle &area,
53 GLenum format,
54 GLenum type,
55 GLvoid *pixels) const override;
56
57 gl::Error blit(ContextImpl *context,
58 const gl::Rectangle &sourceArea,
59 const gl::Rectangle &destArea,
60 GLbitfield mask,
61 GLenum filter) override;
62
63 bool checkStatus() const override;
64
65 void syncState(const gl::Framebuffer::DirtyBits &dirtyBits) override;
66};
67
68} // namespace rx
69
70#endif // LIBANGLE_RENDERER_VULKAN_FRAMEBUFFERVK_H_