uiacceltk/hitchcock/coretoolkit/inc/Util.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/coretoolkit/inc/Util.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef UTIL_H
+#define UTIL_H
+
+
+
+//#define ENABLE_TRACE
+#undef ENABLE_TRACE
+
+#if (defined ENABLE_TRACE) && (!defined __SYMBIAN32__)
+	#include <iostream>
+#endif
+
+#if (defined ENABLE_TRACE) && (defined __SYMBIAN32__)
+#include <e32def.h>
+#include <e32debug.h>
+#endif
+
+#ifndef SG_ASSERT
+	#include <assert.h>
+	#define SG_ASSERT assert
+#endif
+
+namespace shadergen
+{
+
+#ifdef _DEBUG
+	#define DEBUG
+#endif
+
+/* Compile-time assertion */
+#define SG_CT_MAKE_NAME(f, l) sg_ct_assert_failure_##f##l
+#define SG_CT_UNIQUE_NAME SG_CT_MAKE_NAME(__FILE__, __LINE__)
+
+#define SG_CT_ASSERT(cond) typedef char SG_CT_UNIQUE_NAME[(cond) ? 1 : -1]
+
+#define SG_LENGTH_OF_ARRAY(arr) (sizeof(arr) / sizeof((arr)[0]))
+
+
+#if (defined ENABLE_TRACE) && (defined __SYMBIAN32__)
+
+	#define MY_TRACE(str) RDebug::Print(_L(str))
+	#define RAW_TRACE(str) RDebug::Printf(str)
+	#define TRACE_FUNC_ENTRY() (RAW_TRACE(__FUNCTION__))
+#elif (defined ENABLE_TRACE) && (!defined __SYMBIAN32__)
+	#define MY_TRACE(str)  std::cout << (str) << '\n'
+	#define RAW_TRACE(str) std::cout << (str) << '\n'
+	#define TRACE_FUNC_ENTRY() (MY_TRACE(__FUNCTION__))
+#elif !defined ENABLE_TRACE
+	#define MY_TRACE(str)
+	#define RAW_TRACE(str)
+	#define TRACE_FUNC_ENTRY()
+#endif
+
+
+
+template<class T> inline bool SG_IN_RANGE (const T& x, const T& mn, const T& mx)
+{
+	return x <= mx && x >= mn;
+}
+
+
+typedef struct _Vec4
+{
+	float x, y, z, w;
+} Vec4;
+
+SG_CT_ASSERT(sizeof(Vec4) == 4 * sizeof(float));
+
+} /* namespace shadergen */
+
+#endif /* UTIL_H */