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
|