summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/utils.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-10-29 18:22:14 +0100
committerGitHub <noreply@github.com>2018-10-29 18:22:14 +0100
commit0270906dbf6cc4f3de0340ada974fcefb297ace1 (patch)
tree39b5222fb937ef8facb1997d6013836e8adb0675 /src/video_core/renderer_opengl/utils.cpp
parentMerge pull request #1610 from slashiee/dxt1-alpha (diff)
parentvideo_core: Move OpenGL specific utils to its renderer (diff)
downloadyuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.tar
yuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.tar.gz
yuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.tar.bz2
yuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.tar.lz
yuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.tar.xz
yuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.tar.zst
yuzu-0270906dbf6cc4f3de0340ada974fcefb297ace1.zip
Diffstat (limited to 'src/video_core/renderer_opengl/utils.cpp')
-rw-r--r--src/video_core/renderer_opengl/utils.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/utils.cpp b/src/video_core/renderer_opengl/utils.cpp
new file mode 100644
index 000000000..d84634cb3
--- /dev/null
+++ b/src/video_core/renderer_opengl/utils.cpp
@@ -0,0 +1,38 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <string>
+#include <fmt/format.h>
+#include <glad/glad.h>
+#include "common/common_types.h"
+#include "video_core/renderer_opengl/utils.h"
+
+namespace OpenGL {
+
+void LabelGLObject(GLenum identifier, GLuint handle, VAddr addr, std::string extra_info) {
+ if (!GLAD_GL_KHR_debug) {
+ return; // We don't need to throw an error as this is just for debugging
+ }
+ const std::string nice_addr = fmt::format("0x{:016x}", addr);
+ std::string object_label;
+
+ if (extra_info.empty()) {
+ switch (identifier) {
+ case GL_TEXTURE:
+ object_label = "Texture@" + nice_addr;
+ break;
+ case GL_PROGRAM:
+ object_label = "Shader@" + nice_addr;
+ break;
+ default:
+ object_label = fmt::format("Object(0x{:x})@{}", identifier, nice_addr);
+ break;
+ }
+ } else {
+ object_label = extra_info + '@' + nice_addr;
+ }
+ glObjectLabel(identifier, handle, -1, static_cast<const GLchar*>(object_label.c_str()));
+}
+
+} // namespace OpenGL \ No newline at end of file