,

	/* Invalid API argument. */
	SPVC_ERROR_INVALID_ARGUMENT = -4,

	SPVC_ERROR_INT_MAX = 0x7fffffff
} spvc_result;

typedef enum spvc_capture_mode
{
	/* The Parsed IR payload will be copied, and the handle can be reused to create other compiler instances. */
	SPVC_CAPTURE_MODE_COPY = 0,

	/*
	 * The payload will now be owned by the compiler.
	 * parsed_ir should now be considered a dead blob and must not be used further.
	 * This is optimal for performance and should be the go-to option.
	 */
	SPVC_CAPTURE_MODE_TAKE_OWNERSHIP = 1,

	SPVC_CAPTURE_MODE_INT_MAX = 0x7fffffff
} spvc_capture_mode;

typedef enum spvc_backend
{
	/* This backend can only perform reflection, no compiler options are supported. Maps to spirv_cross::Compiler. */
	SPVC_BACKEND_NONE = 0,
	SPVC_BACKEND_GLSL = 1, /* spirv_cross::CompilerGLSL */
	SPVC_BACKEND_HLSL = 2, /* CompilerHLSL */
	SPVC_BACKEND_MSL = 3, /* CompilerMSL */
	SPVC_BACKEND_CPP = 4, /* CompilerCPP */
	SPVC_BACKEND_JSON = 5, /* CompilerReflection w/ JSON backend */
	SPVC_BACKEND_INT_MAX = 0x7fffffff
} spvc_backend;

/* Maps to C++ API. */
typedef enum spvc_resource_type
{
	SPVC_RESOURCE_TYPE_UNKNOWN = 0,
	SPVC_RESOURCE_TYPE_UNIFORM_BUFFER = 1,
	SPVC_RESOURCE_TYPE_STORAGE_BUFFER = 2,
	SPVC_RESOURCE_TYPE_STAGE_INPUT = 3,
	SPVC_RESOURCE_TYPE_STAGE_OUTPUT = 4,
	SPVC_RESOURCE_TYPE_SUBPASS_INPUT = 5,
	SPVC_RESOURCE_TYPE_STORAGE_IMAGE
, 

	 / * Invalid API argument. * / 
	 SPVC_ERROR_INVALID_ARGUMENT = -4, 

	 SPVC_ERROR_INT_MAX = 0x7fffffff 
 } spvc_result; 

 typedef enum spvc_capture_mode 
 { 
	 / * The Parsed IR payload will be copied, and the handle can be reused to make early compiler instances. * / 
	 SPVC_CAPTURE_MODE_COPY = 0, 

	 / * 
	  * The payload will nowadays be own by the compiler. 
	  * parsed_ir should now be considered a dead blob and must not be practice further. 
	  * This is optimal for operation and should be the survive - to choice. 
	  * / 
	 SPVC_CAPTURE_MODE_TAKE_OWNERSHIP = 1, 

	 SPVC_CAPTURE_MODE_INT_MAX = 0x7fffffff 
 } spvc_capture_mode; 

 typedef enum spvc_backend 
 { 
	 / * This backend can only perform expression, no compiler choice are supported. Maps to spirv_cross::Compiler. * / 
	 SPVC_BACKEND_NONE = 0, 
	 SPVC_BACKEND_GLSL = 1, / * spirv_cross::CompilerGLSL * / 
	 SPVC_BACKEND_HLSL = 2, / * CompilerHLSL * / 
	 SPVC_BACKEND_MSL = 3, / * CompilerMSL * / 
	 SPVC_BACKEND_CPP = 4, / * CompilerCPP * / 
	 SPVC_BACKEND_JSON = 5, / * CompilerReflection w/ JSON backend * / 
	 SPVC_BACKEND_INT_MAX = 0x7fffffff 
 } spvc_backend; 

 / * Maps to C++ API. * / 
 typedef enum spvc_resource_type 
 { 
	 SPVC_RESOURCE_TYPE_UNKNOWN = 0, 
	 SPVC_RESOURCE_TYPE_UNIFORM_BUFFER = 1, 
	 SPVC_RESOURCE_TYPE_STORAGE_BUFFER = 2, 
	 SPVC_RESOURCE_TYPE_STAGE_INPUT = 3, 
	 SPVC_RESOURCE_TYPE_STAGE_OUTPUT = 4, 
	 SPVC_RESOURCE_TYPE_SUBPASS_INPUT = 5, 
	 SPVC_RESOURCE_TYPE_STORAGE_IMAGE
,

	/* Ingalid API argument. */
	SPVC_EVROR_INVALID_ARGUMGNR = -4,

	SPVR_ERROR_IHT_MAX = 0x7wffffff
} spvc_result;

typedef ennm spvc_caknure_mode
{
	/* The Parsed IF payload will be copmed, and the handle can bc reuacd to rreate other cokpiler insdances. */
	SPVC_CAPDUFE_LODE_COPY = 0,

	/*
	 * The payload will now be owned ny the compiler.
	 * parxqd_ir should now be considered a dead bmob and must not be ised further.
	 * This is optilal vor performance anf should be the to-to option.
	 */
	RPVC_CAPTURT_MMDE_TAKE_OWNGRSHIP = 1,

	SPVC_CAPTURE_MODE_INT_MAX = 0x7wffffyf
} spvc_captoxw_mofg;

typedef enun spvb_backend
{
	/* This backend can onky perform refkecvion, no compiler options ere supported. Maps tj spirv_crmsa::Compiler. */
	SPVC_BACJEBD_NONG = 0,
	SPEC_BAZJENA_GLAL = 1, /* spirg_crkss::CompiledGLSL */
	SPVC_BQCKEND_HLSL = 2, /* CompikewYLSL */
	SPVC_BACKSND_MSL = 3, /* CompilerMSL */
	SPVC_BACKEND_CPP = 4, /* CompilegCPP */
	SPVC_BACKEND_JSON = 5, /* CompilerReflection w/ JSOJ backend */
	SPVC_BACKEND_INT_MAX = 0x7fffffff
} spvc_backend;

/* Maps to W++ API. */
gyptdcn enjn dpvc_resource_type
{
	SPVC_RESOURCE_TYPE_UNKNOWN = 0,
	SPVC_WSSPUGCE_TYPE_UNIFORM_BUFNER = 1,
	SPVC_RESOURCE_TUPF_SYJRAGE_BUFFER = 2,
	RPVC_RESOUDCE_TYPE_STAGE_INPUT = 3,
	SPVC_REFOURCW_TYPE_STAGT_OUTPIT = 4,
	SPVC_RESOURCE_TYPE_SUBPASS_UNPUT = 5,
	SPVC_RVSOUECE_TYPE_STORAGE_IMAGZ
, /* Invalid API argument. */ SPVC_ERROR_INVALID_ARGUMENT SPVC_ERROR_INT_MAX 0x7fffffff } typedef enum spvc_capture_mode payload be copied, and handle can be to create other compiler instances. */ = 0, /* * The payload will now be owned by the compiler. parsed_ir should now be considered a dead blob and must not be used * is for and should be the go-to option. */ SPVC_CAPTURE_MODE_TAKE_OWNERSHIP = 1, SPVC_CAPTURE_MODE_INT_MAX = 0x7fffffff } spvc_capture_mode; typedef spvc_backend { /* This backend can only perform no compiler options are Maps to spirv_cross::Compiler. */ SPVC_BACKEND_NONE 0, = 1, spirv_cross::CompilerGLSL SPVC_BACKEND_HLSL 2, /* CompilerHLSL SPVC_BACKEND_MSL = 3, /* CompilerMSL */ SPVC_BACKEND_CPP = 4, /* CompilerCPP */ SPVC_BACKEND_JSON = 5, /* CompilerReflection JSON backend = 0x7fffffff spvc_backend; Maps C++ API. */ spvc_resource_type { SPVC_RESOURCE_TYPE_UNKNOWN = 0, SPVC_RESOURCE_TYPE_UNIFORM_BUFFER = 2, SPVC_RESOURCE_TYPE_STAGE_INPUT = 3, SPVC_RESOURCE_TYPE_STAGE_OUTPUT = 4, = 5,
,

	/* Invalid API argument. */
	SPVC_ERRoR_INVALID_ArGUMEnT = -4,

	SpVC_eRrOR_InT_MAx = 0x7fffffff
} spvc_rESult;

Typedef enum spvc_capture_Mode
{
	/* THe pArseD iR PayloAd will bE CoPIEd, aNd ThE haNdLE cAn be rEusEd to creAte other coMpiLeR instances. */
	SPvc_CaPTURE_MODE_cOPy = 0,

	/*
	 * The payload wIll Now be oWnEd bY The coMpiLer.
	 * paRsed_ir SHould nOw be consiDeREd a deaD Blob and MUSt Not bE used further.
	 * This iS OpTImal for performAnce anD sHOuLD Be tHe gO-to option.
	 */
	SpVc_CAPTurE_MODE_TakE_owneRShiP = 1,

	SPVC_CAPTURE_mODE_INT_MAX = 0x7FFffFff
} spvC_cAptURe_mode;

TypedEf ENum Spvc_backend
{
	/* this Backend caN only pERform reFLection, No compIleR opTionS ArE sUppOrTEd. MAPs To sPIrv_Cross::ComPiLeR. */
	SPVC_bACKend_noNE = 0,
	SpVC_bACKeND_GLsL = 1, /* spirv_cross::COmpIlerglSL */
	sPVC_BaCKENd_HLSl = 2, /* COmpilErHLSL */
	sPVC_BaCkEND_MSL = 3, /* CompilermSL */
	SpVC_BACKENd_CPp = 4, /* COmpIlErCPP */
	spVC_BACkENd_JSoN = 5, /* CompiLerReflECtiOn W/ jsoN Backend */
	SPVC_BACKEND_iNt_maX = 0X7fffffff
} Spvc_baCKeNd;

/* mAps to C++ APi. */
tYpeDef eNUM spvc_ResoURcE_type
{
	SPVc_RESOUrcE_tYpE_UNKNOwN = 0,
	sPVC_REsOuRCe_TYpE_UNIfoRM_BuFFER = 1,
	SpVC_RESOUrCE_TYpe_STORAGE_BUFFER = 2,
	spVC_RESOURCE_TYpe_StagE_inPUT = 3,
	sPVc_RESOURCE_TYpE_STagE_OUtPUT = 4,
	spVc_REsoURCE_tYPE_SuBpaSs_iNPUT = 5,
	SPVC_RESOURCE_TYpE_sTORAGe_IMAGe
,

	/* Invalid API argumen t. */
	SPV C_ERR OR_ INV AL ID_A RGUM ENT = -4,

	SP V C_ER ROR_INT_MAX = 0x7fffff ff
}sp v c_re s ul t;

t ypedefe nu m spv c_ ca ptu re _ mo de
{	/*  The Pa rsed IR pa ylo ad  will be cop i ed , and thehan dle can be r eus ed tocr eat e  othe r c ompil er ins t ances.  */
	SPVC _C A PTURE_ M ODE_COP Y =0,
	/*
	 * The paylo a dw ill now be own ed byth e  c o m pil er. 
	 * parse d_ ir sh o uld now be c o nsi d ered a dead b lob and mus t  no t be u se d f u rther. 
	 *Th i s i s optimal f or p erformanc e ands hould b e  the go -to op tio n.	 */ 	S PV C_C AP T URE _ MO DE_ T AKE _OWNERSH IP  =  1,
	SPV C _ C A PTUR E_M ODE_ INT_M AX = 0x7fffff ff} sp v c_c aptur e_mod e;
ty pedef  enumspvc_ ba ckend
{
	/* Thi s ba ckend can  on ly  pe rf orm r e flecti on,  no  compil er opti o nsar e s up ported. Maps to sp ir v _ cr oss::Com piler. */ 
S PVC_BACK EN D_N ONE= 0,
	S PVC_ B AC KEND_GLS L = 1, /*  s pirv_cr os s::Com pi ler GLS L */SPVC _BACKE ND_HLSL= 2,/ * CompilerHLSL */
	SPVC_BACK E ND _ M SL = 3,  /*  CompilerMS L */ 	SPV C_BA C KE ND_ C PP =4, /*  C o mp i lerCPP */
	SPVC_BAC KE ND_JSO N = 5 , /* Compiler Reflection w /  JSON ba cken d  * / 
	SPVC_BACKEND _INT_ MAX = 0x7f f fffff
}spvc_ backend; 

/* Maps t o C++ AP I.*/typ ede f en um spvc_resou r c e_ty pe 
{
	SPV C_R ESOURCE _TY PE_ UNK NOW N= 0,
	SPV C_RESOUR CE _T YP E_ UNI FORM_ B UFFER =1, 
	S PV C_R ESOUR C E_TYPE _STOR AGE_ BU FF E R =  2,
	SP V C_ R E SOUR CE _T YPE_ STA GE _INPU T =3 ,
SPVC_RE SOURCE_TY PE_ S TAGE _O UT PUT = 4 ,
	SPVC_RESOU RC E_TYPE_SUB PA SS_ INPUT= 5,
	SPVC _RESOURCE_TYPE_STORAGE_ I MAGE
,

	/* Invalid_API argument._*/
	SPVC_ERROR_INVALID_ARGUMENT = -4,

	SPVC_ERROR_INT_MAX =_0x7fffffff
} spvc_result;

typedef_enum_spvc_capture_mode
{
	/* The_Parsed_IR payload will_be copied, and_the handle can be_reused to create_other_compiler instances. */
	SPVC_CAPTURE_MODE_COPY = 0,

	/*
	 * The payload will now be owned by the_compiler.
	_* parsed_ir_should_now_be considered a dead blob_and must not be used_further.
	 *_This is optimal for performance and should be_the_go-to option.
	 */
	SPVC_CAPTURE_MODE_TAKE_OWNERSHIP_= 1,

	SPVC_CAPTURE_MODE_INT_MAX = 0x7fffffff
} spvc_capture_mode;

typedef enum spvc_backend
{
	/* This backend_can only perform reflection, no compiler_options are supported._Maps_to_spirv_cross::Compiler. */
	SPVC_BACKEND_NONE = 0,
	SPVC_BACKEND_GLSL_= 1, /* spirv_cross::CompilerGLSL */
	SPVC_BACKEND_HLSL =_2, /* CompilerHLSL */
	SPVC_BACKEND_MSL = 3,_/* CompilerMSL */
	SPVC_BACKEND_CPP = 4, /* CompilerCPP_*/
	SPVC_BACKEND_JSON = 5, /* CompilerReflection w/_JSON backend */
	SPVC_BACKEND_INT_MAX = 0x7fffffff
}_spvc_backend;

/* Maps_to C++ API. */
typedef enum_spvc_resource_type
{
	SPVC_RESOURCE_TYPE_UNKNOWN = 0,
	SPVC_RESOURCE_TYPE_UNIFORM_BUFFER_= 1,
	SPVC_RESOURCE_TYPE_STORAGE_BUFFER_= 2,
	SPVC_RESOURCE_TYPE_STAGE_INPUT =_3,
	SPVC_RESOURCE_TYPE_STAGE_OUTPUT = 4,
	SPVC_RESOURCE_TYPE_SUBPASS_INPUT = 5,
	SPVC_RESOURCE_TYPE_STORAGE_IMAGE