StarEngine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
definesAndroid.h
Go to the documentation of this file.
1 #pragma once
2 
3 #ifdef ANDROID
4 
5 #include <stdint.h>
6 
7 typedef uint8_t BYTE, byte;
8 typedef uint8_t * PBYTE;
9 
10 typedef struct myPoint
11 {
12  int32_t x;
13  int32_t y;
14 } POINT;
15 
16 #include <android/log.h>
17 
18 #define _T(x) x
19 
20 #ifndef NDEBUG
21 #define ASSERT \
22  if ( false ) {} \
23  else \
24  struct LocalAssert { \
25  int mLine; \
26  LocalAssert(int line=__LINE__) : mLine(line) {} \
27  LocalAssert(bool isOK, const tchar* message=_T("")) { \
28  if ( !isOK ) { \
29  tstringstream buffer; \
30  buffer << _T("ERROR!! Assert failed on line ") << LocalAssert().mLine << _T(" in file '") << __FILE__ << std::endl << _T("Message: \"") << message << _T("\"\n"); \
31  __android_log_assert(_T("ASSERT"), ANDROID_LOG_TAG, "%s", buffer.str().c_str()); \
32  } \
33  } \
34  } myAsserter = LocalAssert
35  #define ASSERTC \
36  if ( false ) {} \
37  else \
38  struct LocalAssert { \
39  int mLine; \
40  LocalAssert(int line=__LINE__) : mLine(line) {} \
41  LocalAssert(bool isOK, const char* message="") { \
42  if ( !isOK ) { \
43  std::stringstream buffer; \
44  buffer << "ERROR!! Assert failed on line " << LocalAssert().mLine << " in file '" << __FILE__ << std::endl << "Message: \"" << message << "\"\n"; \
45  __android_log_assert("ASSERT", ANDROID_LOG_TAG, "%s", buffer.str().c_str()); \
46  } \
47  } \
48  } myAsserter = LocalAssert
49 #else
50 #define ASSERT \
51  if ( true ) {} else \
52 struct NoAssert { \
53  NoAssert(bool isOK, const tchar* message=_T("")) {} \
54 } myAsserter = NoAssert
55 #define ASSERTC \
56  if ( true ) {} else \
57 struct NoAssert { \
58  NoAssert(bool isOK, const tchar* message=_T("")) {} \
59 } myAsserter = NoAssert
60 #endif
61 
62 #endif