File: contextTypes.h

package info (click to toggle)
intel-graphics-compiler2 2.16.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 106,644 kB
  • sloc: cpp: 805,640; lisp: 287,672; ansic: 16,414; python: 3,952; yacc: 2,588; lex: 1,666; pascal: 313; sh: 186; makefile: 35
file content (113 lines) | stat: -rw-r--r-- 3,658 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*========================== begin_copyright_notice ============================

Copyright (C) 2017-2021 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

#ifndef ContextTypes_h_INCLUDED
#define ContextTypes_h_INCLUDED

#if defined _USC_
#include "IGC/common/igc_debug.h"
#include "3d/common/iStdLib/types.h"
#include "API/ShaderTypes.h"
#else
#include "API/ShaderTypes.h"
#endif

#include "ErrorCode.h"

namespace GHAL3D {

/*****************************************************************************\
ENUM: GHAL3D_CONTEXT_TYPE
\*****************************************************************************/
enum GHAL3D_CONTEXT_TYPE { GHAL3D_CONTEXT_IMMEDIATE, GHAL3D_CONTEXT_DEFERRED, NUM_GHAL3D_CONTEXT_TYPES };

/*****************************************************************************\
ENUM: SHADER_TYPE
\*****************************************************************************/
#if !defined _USC_ && !defined OPENGL_IMOLA
enum SHADER_TYPE {
  VERTEX_SHADER,
  GEOMETRY_SHADER,
  PIXEL_SHADER,
  HULL_SHADER,
  DOMAIN_SHADER,
  COMPUTE_SHADER,
  NUM_SHADER_TYPES
};
#endif //! defined(_USC_)

#ifndef OPENGL_IMOLA
/*****************************************************************************\
STRUCT: RETVAL
\*****************************************************************************/
struct RETVAL {
  // External values
  DWORD Success : 1;           // Call was successful
  DWORD Error : 1;             // Invalid call
  DWORD OutOfSystemMemory : 1; // System memory allocation failed
  DWORD Busy : 1;              // Compilation not done yet
  DWORD _Unused : 28;          // Reserved // For GCC 4.7 bug (do not allow to static initialize anonymous members)

  RETVAL &operator=(const ErrorCode &);
  operator ErrorCode(); // convertion operator to ErrorCode API type
};

static_assert(sizeof(RETVAL) == sizeof(ErrorCode));

inline RETVAL &RETVAL::operator=(const ErrorCode &errorCode) {
  Success = errorCode.Success;
  Error = errorCode.Error;
  OutOfSystemMemory = errorCode.OutOfSystemMemory;
  Busy = errorCode.Busy;

  return *this;
}

inline RETVAL::operator ErrorCode() { return *reinterpret_cast<ErrorCode *>(this); }

/*****************************************************************************\
CONST: g_cInitRetVal
\*****************************************************************************/
const RETVAL g_cInitRetVal = {
    true,  // Success
    false, // Error
    false, // OutOfSystemMemory
    false, // Busy
};

static_assert(sizeof(g_cInitRetVal) == sizeof(g_cInitErrorCode));

#endif

/*****************************************************************************\
TYPEDEF: HANDLE_TYPE
\*****************************************************************************/
struct HANDLE_TYPE {
  void *handle;

  bool operator==(const HANDLE_TYPE &rvalue) const;
  bool operator!=(const HANDLE_TYPE &rvalue) const;
};

inline bool HANDLE_TYPE::operator==(const HANDLE_TYPE &rvalue) const { return handle == rvalue.handle; };

inline bool HANDLE_TYPE::operator!=(const HANDLE_TYPE &rvalue) const { return handle != rvalue.handle; }

/*****************************************************************************\
TYPEDEF: STATE_HANDLE
\*****************************************************************************/
typedef HANDLE_TYPE STATE_HANDLE;

/*****************************************************************************\
CONST: DISABLE_HANDLE
\*****************************************************************************/
const HANDLE_TYPE DISABLE_HANDLE = {0};

} // namespace GHAL3D

#endif // ContextTypes_h_INCLUDED