blob: 19d11cce1d1d2811aaf853575643430a44498810 [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
109void ContextVk::notifyDeviceLost()
110{
111 UNIMPLEMENTED();
112}
113
114bool ContextVk::isDeviceLost() const
115{
116 UNIMPLEMENTED();
117 return bool();
118}
119
120bool ContextVk::testDeviceLost()
121{
122 UNIMPLEMENTED();
123 return bool();
124}
125
126bool ContextVk::testDeviceResettable()
127{
128 UNIMPLEMENTED();
129 return bool();
130}
131
132std::string ContextVk::getVendorString() const
133{
134 UNIMPLEMENTED();
135 return std::string();
136}
137
138std::string ContextVk::getRendererDescription() const
139{
140 UNIMPLEMENTED();
141 return std::string();
142}
143
144void ContextVk::insertEventMarker(GLsizei length, const char *marker)
145{
146 UNIMPLEMENTED();
147}
148
149void ContextVk::pushGroupMarker(GLsizei length, const char *marker)
150{
151 UNIMPLEMENTED();
152}
153
154void ContextVk::popGroupMarker()
155{
156 UNIMPLEMENTED();
157}
158
159void ContextVk::syncState(const gl::State &state, const gl::State::DirtyBits &dirtyBits)
160{
161 UNIMPLEMENTED();
162}
163
164GLint ContextVk::getGPUDisjoint()
165{
166 UNIMPLEMENTED();
167 return GLint();
168}
169
170GLint64 ContextVk::getTimestamp()
171{
172 UNIMPLEMENTED();
173 return GLint64();
174}
175
176void ContextVk::onMakeCurrent(const gl::ContextState &data)
177{
178 UNIMPLEMENTED();
179}
180
181const gl::Caps &ContextVk::getNativeCaps() const
182{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400183 return mRenderer->getNativeCaps();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400184}
185
186const gl::TextureCapsMap &ContextVk::getNativeTextureCaps() const
187{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400188 return mRenderer->getNativeTextureCaps();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400189}
190
191const gl::Extensions &ContextVk::getNativeExtensions() const
192{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400193 return mRenderer->getNativeExtensions();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400194}
195
196const gl::Limitations &ContextVk::getNativeLimitations() const
197{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400198 return mRenderer->getNativeLimitations();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400199}
200
201CompilerImpl *ContextVk::createCompiler()
202{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400203 return new CompilerVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400204}
205
Jamie Madillacccc6c2016-05-03 17:22:10 -0400206ShaderImpl *ContextVk::createShader(const gl::ShaderState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400207{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400208 return new ShaderVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400209}
210
Jamie Madillacccc6c2016-05-03 17:22:10 -0400211ProgramImpl *ContextVk::createProgram(const gl::ProgramState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400212{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400213 return new ProgramVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400214}
215
Jamie Madillacccc6c2016-05-03 17:22:10 -0400216FramebufferImpl *ContextVk::createFramebuffer(const gl::FramebufferState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400217{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400218 return new FramebufferVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400219}
220
221TextureImpl *ContextVk::createTexture(const gl::TextureState &state)
222{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400223 return new TextureVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400224}
225
226RenderbufferImpl *ContextVk::createRenderbuffer()
227{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400228 return new RenderbufferVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400229}
230
231BufferImpl *ContextVk::createBuffer()
232{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400233 return new BufferVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400234}
235
Jamie Madillacccc6c2016-05-03 17:22:10 -0400236VertexArrayImpl *ContextVk::createVertexArray(const gl::VertexArrayState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400237{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400238 return new VertexArrayVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400239}
240
241QueryImpl *ContextVk::createQuery(GLenum type)
242{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400243 return new QueryVk(type);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400244}
245
246FenceNVImpl *ContextVk::createFenceNV()
247{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400248 return new FenceNVVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400249}
250
251FenceSyncImpl *ContextVk::createFenceSync()
252{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400253 return new FenceSyncVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400254}
255
256TransformFeedbackImpl *ContextVk::createTransformFeedback()
257{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400258 return new TransformFeedbackVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400259}
260
261SamplerImpl *ContextVk::createSampler()
262{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400263 return new SamplerVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400264}
265
Sami Väisänene45e53b2016-05-25 10:36:04 +0300266std::vector<PathImpl *> ContextVk::createPaths(GLsizei)
267{
268 return std::vector<PathImpl *>();
269}
270
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400271} // namespace rx