File: contextTypes.h

package info (click to toggle)
intel-graphics-compiler 1.0.12504.6-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 83,912 kB
  • sloc: cpp: 910,147; lisp: 202,655; ansic: 15,197; python: 4,025; yacc: 2,241; lex: 1,570; pascal: 244; sh: 104; makefile: 25
file content (134 lines) | stat: -rw-r--r-- 3,880 bytes parent folder | download | duplicates (3)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*========================== 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