Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-09-08 16:01:24 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-09-25 15:08:32 +0400
commit13d8671a1a71e77ca3c6b1ce3d13d200ddd778d1 (patch)
treed8a02a2b1601b5bff66d2b2a6987ecccc33e9dd1 /intern/cycles/util/util_logging.h
parent058e3f087e4db827e0dcb2b8ea662fa7cdc1ff6b (diff)
Cycles: Add support of Glog logging
This commit makes it possible to use Glog library for the debug logging. For now only possible when using CMake and in order to use the logging the WITH_CYCLES_LOGGING configuration variable is to be enabled. When this option is not enabled or when using Scons there's no difference in Cycles behavior at all, when using logging and no output to the console impact is gonna to be minimal. This is done in order to make it possible to have debug logging persistent in code (without need to add it when troubleshooting some bug and removing it afterwards). For now actual logging is not placed yet, only all the functions needed for the logging are written and so.
Diffstat (limited to 'intern/cycles/util/util_logging.h')
-rw-r--r--intern/cycles/util/util_logging.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/intern/cycles/util/util_logging.h b/intern/cycles/util/util_logging.h
new file mode 100644
index 00000000000..2bd0fac7fa6
--- /dev/null
+++ b/intern/cycles/util/util_logging.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011-2014 Blender Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+#ifndef __UTIL_LOGGING_H__
+#define __UTIL_LOGGING_H__
+
+#if defined(WITH_CYCLES_LOGGING) && !defined(__KERNEL_GPU__)
+# include <glog/logging.h>
+#else
+# include <iostream>
+#endif
+
+CCL_NAMESPACE_BEGIN
+
+#if !defined(WITH_CYCLES_LOGGING) || defined(__KERNEL_GPU__)
+class StubStream : public std::ostream {
+ public:
+ StubStream () { }
+};
+
+class LogMessageVoidify {
+public:
+ LogMessageVoidify() { }
+ void operator&(::std::ostream&) { }
+};
+
+# define LOG_SUPPRESS() (true) ? (void) 0 : LogMessageVoidify() & StubStream()
+# define LOG(severity) LOG_SUPPRESS()
+# define VLOG(severity) LOG_SUPPRESS()
+
+#endif
+
+class float3;
+
+std::ostream& operator <<(std::ostream &os,
+ const float3 &value);
+
+CCL_NAMESPACE_END
+
+#endif /* __UTIL_LOGGING_H__ */