summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Subv2018-07-02 13:31:49 -0500
committerGravatar Subv2018-07-02 13:31:49 -0500
commitd480b63e0da6c869157117fe2771da258c4e8ea0 (patch)
treec7d450e8e042988d4b1bf172d53c1a9c8cd8f185 /src
parentGPU: Added registers for depth test and cull mode. (diff)
downloadyuzu-d480b63e0da6c869157117fe2771da258c4e8ea0.tar.gz
yuzu-d480b63e0da6c869157117fe2771da258c4e8ea0.tar.xz
yuzu-d480b63e0da6c869157117fe2771da258c4e8ea0.zip
MaxwellToGL: Added conversion functions for depth test and cull mode.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/maxwell_to_gl.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/maxwell_to_gl.h b/src/video_core/renderer_opengl/maxwell_to_gl.h
index 2155fb019..392041a1c 100644
--- a/src/video_core/renderer_opengl/maxwell_to_gl.h
+++ b/src/video_core/renderer_opengl/maxwell_to_gl.h
@@ -201,4 +201,54 @@ inline GLenum SwizzleSource(Tegra::Texture::SwizzleSource source) {
201 return {}; 201 return {};
202} 202}
203 203
204inline GLenum ComparisonOp(Maxwell::ComparisonOp comparison) {
205 switch (comparison) {
206 case Maxwell::ComparisonOp::Never:
207 return GL_NEVER;
208 case Maxwell::ComparisonOp::Less:
209 return GL_LESS;
210 case Maxwell::ComparisonOp::Equal:
211 return GL_EQUAL;
212 case Maxwell::ComparisonOp::LessEqual:
213 return GL_LEQUAL;
214 case Maxwell::ComparisonOp::Greater:
215 return GL_GREATER;
216 case Maxwell::ComparisonOp::NotEqual:
217 return GL_NOTEQUAL;
218 case Maxwell::ComparisonOp::GreaterEqual:
219 return GL_GEQUAL;
220 case Maxwell::ComparisonOp::Always:
221 return GL_ALWAYS;
222 }
223 NGLOG_CRITICAL(Render_OpenGL, "Unimplemented comparison op={}", static_cast<u32>(comparison));
224 UNREACHABLE();
225 return {};
226}
227
228inline GLenum FrontFace(Maxwell::Cull::FrontFace front_face) {
229 switch (front_face) {
230 case Maxwell::Cull::FrontFace::ClockWise:
231 return GL_CW;
232 case Maxwell::Cull::FrontFace::CounterClockWise:
233 return GL_CCW;
234 }
235 NGLOG_CRITICAL(Render_OpenGL, "Unimplemented front face cull={}", static_cast<u32>(front_face));
236 UNREACHABLE();
237 return {};
238}
239
240inline GLenum CullFace(Maxwell::Cull::CullFace cull_face) {
241 switch (cull_face) {
242 case Maxwell::Cull::CullFace::Front:
243 return GL_FRONT;
244 case Maxwell::Cull::CullFace::Back:
245 return GL_BACK;
246 case Maxwell::Cull::CullFace::FrontAndBack:
247 return GL_FRONT_AND_BACK;
248 }
249 NGLOG_CRITICAL(Render_OpenGL, "Unimplemented cull face={}", static_cast<u32>(cull_face));
250 UNREACHABLE();
251 return {};
252}
253
204} // namespace MaxwellToGL 254} // namespace MaxwellToGL