blob: d0660bfdcf605d7b7bd36d0498bec6849f9c2be7 [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// ContextVk.cpp:
7// Implements the class methods for ContextVk.
8//
9
10#include "libANGLE/renderer/vulkan/ContextVk.h"
11
12#include "common/debug.h"
Jamie Madillacccc6c2016-05-03 17:22:10 -040013#include "libANGLE/renderer/vulkan/BufferVk.h"
14#include "libANGLE/renderer/vulkan/CompilerVk.h"
15#include "libANGLE/renderer/vulkan/ContextVk.h"
16#include "libANGLE/renderer/vulkan/DeviceVk.h"
17#include "libANGLE/renderer/vulkan/FenceNVVk.h"
18#include "libANGLE/renderer/vulkan/FenceSyncVk.h"
19#include "libANGLE/renderer/vulkan/FramebufferVk.h"
20#include "libANGLE/renderer/vulkan/ImageVk.h"
21#include "libANGLE/renderer/vulkan/ProgramVk.h"
22#include "libANGLE/renderer/vulkan/QueryVk.h"
23#include "libANGLE/renderer/vulkan/RenderbufferVk.h"
24#include "libANGLE/renderer/vulkan/RendererVk.h"
25#include "libANGLE/renderer/vulkan/SamplerVk.h"
26#include "libANGLE/renderer/vulkan/ShaderVk.h"
27#include "libANGLE/renderer/vulkan/TextureVk.h"
28#include "libANGLE/renderer/vulkan/TransformFeedbackVk.h"
29#include "libANGLE/renderer/vulkan/VertexArrayVk.h"
Jamie Madill9e54b5a2016-05-25 12:57:39 -040030
31namespace rx
32{
33
Jamie Madillacccc6c2016-05-03 17:22:10 -040034ContextVk::ContextVk(const gl::ContextState &state, RendererVk *renderer)
35 : ContextImpl(state), mRenderer(renderer)
Jamie Madill9e54b5a2016-05-25 12:57:39 -040036{
37}
38
39ContextVk::~ContextVk()
40{
41}
42
43gl::Error ContextVk::initialize()
44{
45 UNIMPLEMENTED();
46 return gl::Error(GL_INVALID_OPERATION);
47}
48
49gl::Error ContextVk::flush()
50{
51 UNIMPLEMENTED();
52 return gl::Error(GL_INVALID_OPERATION);
53}
54
55gl::Error ContextVk::finish()
56{
57 UNIMPLEMENTED();
58 return gl::Error(GL_INVALID_OPERATION);
59}
60
61gl::Error ContextVk::drawArrays(GLenum mode, GLint first, GLsizei count)
62{
63 UNIMPLEMENTED();
64 return gl::Error(GL_INVALID_OPERATION);
65}
66
67gl::Error ContextVk::drawArraysInstanced(GLenum mode,
68 GLint first,
69 GLsizei count,
70 GLsizei instanceCount)
71{
72 UNIMPLEMENTED();
73 return gl::Error(GL_INVALID_OPERATION);
74}
75
76gl::Error ContextVk::drawElements(GLenum mode,
77 GLsizei count,
78 GLenum type,
79 const GLvoid *indices,
80 const gl::IndexRange &indexRange)
81{
82 UNIMPLEMENTED();
83 return gl::Error(GL_INVALID_OPERATION);
84}
85
86gl::Error ContextVk::drawElementsInstanced(GLenum mode,
87 GLsizei count,
88 GLenum type,
89 const GLvoid *indices,
90 GLsizei instances,
91 const gl::IndexRange &indexRange)
92{
93 UNIMPLEMENTED();
94 return gl::Error(GL_INVALID_OPERATION);
95}
96
97gl::Error ContextVk::drawRangeElements(GLenum mode,
98 GLuint start,
99 GLuint end,
100 GLsizei count,
101 GLenum type,
102 const GLvoid *indices,
103 const gl::IndexRange &indexRange)
104{
105 UNIMPLEMENTED();
106 return gl::Error(GL_INVALID_OPERATION);
107}
108
Corentin Wallez87fbe1c2016-08-03 14:41:42 -0400109GLenum ContextVk::getResetStatus()
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400110{
111 UNIMPLEMENTED();
Corentin Wallez87fbe1c2016-08-03 14:41:42 -0400112 return GL_NO_ERROR;
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400113}
114
115std::string ContextVk::getVendorString() const
116{
117 UNIMPLEMENTED();
118 return std::string();
119}
120
121std::string ContextVk::getRendererDescription() const
122{
123 UNIMPLEMENTED();
124 return std::string();
125}
126
127void ContextVk::insertEventMarker(GLsizei length, const char *marker)
128{
129 UNIMPLEMENTED();
130}
131
132void ContextVk::pushGroupMarker(GLsizei length, const char *marker)
133{
134 UNIMPLEMENTED();
135}
136
137void ContextVk::popGroupMarker()
138{
139 UNIMPLEMENTED();
140}
141
142void ContextVk::syncState(const gl::State &state, const gl::State::DirtyBits &dirtyBits)
143{
144 UNIMPLEMENTED();
145}
146
147GLint ContextVk::getGPUDisjoint()
148{
149 UNIMPLEMENTED();
150 return GLint();
151}
152
153GLint64 ContextVk::getTimestamp()
154{
155 UNIMPLEMENTED();
156 return GLint64();
157}
158
159void ContextVk::onMakeCurrent(const gl::ContextState &data)
160{
161 UNIMPLEMENTED();
162}
163
164const gl::Caps &ContextVk::getNativeCaps() const
165{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400166 return mRenderer->getNativeCaps();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400167}
168
169const gl::TextureCapsMap &ContextVk::getNativeTextureCaps() const
170{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400171 return mRenderer->getNativeTextureCaps();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400172}
173
174const gl::Extensions &ContextVk::getNativeExtensions() const
175{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400176 return mRenderer->getNativeExtensions();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400177}
178
179const gl::Limitations &ContextVk::getNativeLimitations() const
180{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400181 return mRenderer->getNativeLimitations();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400182}
183
184CompilerImpl *ContextVk::createCompiler()
185{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400186 return new CompilerVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400187}
188
Jamie Madillacccc6c2016-05-03 17:22:10 -0400189ShaderImpl *ContextVk::createShader(const gl::ShaderState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400190{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400191 return new ShaderVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400192}
193
Jamie Madillacccc6c2016-05-03 17:22:10 -0400194ProgramImpl *ContextVk::createProgram(const gl::ProgramState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400195{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400196 return new ProgramVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400197}
198
Jamie Madillacccc6c2016-05-03 17:22:10 -0400199FramebufferImpl *ContextVk::createFramebuffer(const gl::FramebufferState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400200{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400201 return new FramebufferVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400202}
203
204TextureImpl *ContextVk::createTexture(const gl::TextureState &state)
205{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400206 return new TextureVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400207}
208
209RenderbufferImpl *ContextVk::createRenderbuffer()
210{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400211 return new RenderbufferVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400212}
213
Jamie Madill8f775602016-11-03 16:45:34 -0400214BufferImpl *ContextVk::createBuffer(const gl::BufferState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400215{
Jamie Madill8f775602016-11-03 16:45:34 -0400216 return new BufferVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400217}
218
Jamie Madillacccc6c2016-05-03 17:22:10 -0400219VertexArrayImpl *ContextVk::createVertexArray(const gl::VertexArrayState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400220{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400221 return new VertexArrayVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400222}
223
224QueryImpl *ContextVk::createQuery(GLenum type)
225{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400226 return new QueryVk(type);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400227}
228
229FenceNVImpl *ContextVk::createFenceNV()
230{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400231 return new FenceNVVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400232}
233
234FenceSyncImpl *ContextVk::createFenceSync()
235{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400236 return new FenceSyncVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400237}
238
Geoff Lang73bd2182016-07-15 13:01:24 -0400239TransformFeedbackImpl *ContextVk::createTransformFeedback(const gl::TransformFeedbackState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400240{
Geoff Lang73bd2182016-07-15 13:01:24 -0400241 return new TransformFeedbackVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400242}
243
244SamplerImpl *ContextVk::createSampler()
245{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400246 return new SamplerVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400247}
248
Sami Väisänene45e53b2016-05-25 10:36:04 +0300249std::vector<PathImpl *> ContextVk::createPaths(GLsizei)
250{
251 return std::vector<PathImpl *>();
252}
253
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400254} // namespace rx