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
|