blob: 98a91d9221e1a9d74cc86d5a278d39e385b5a804 [file] [log] [blame] [edit]
///////////////////////////////////////////////////////////////////////////////
// //
// dxctools.h //
// Copyright (C) Microsoft Corporation. All rights reserved. //
// This file is distributed under the University of Illinois Open Source //
// License. See LICENSE.TXT for details. //
// //
// Provides declarations for the DirectX Compiler tooling components. //
// //
///////////////////////////////////////////////////////////////////////////////
#ifndef __DXC_TOOLS__
#define __DXC_TOOLS__
#include <dxc/dxcapi.h>
enum RewriterOptionMask {
Default = 0,
SkipFunctionBody = 1,
SkipStatic = 2,
GlobalExternByDefault = 4,
KeepUserMacro = 8,
};
struct __declspec(uuid("c012115b-8893-4eb9-9c5a-111456ea1c45"))
IDxcRewriter : public IUnknown {
virtual HRESULT STDMETHODCALLTYPE RemoveUnusedGlobals(_In_ IDxcBlobEncoding *pSource,
_In_z_ LPCWSTR entryPoint,
_In_count_(defineCount) DxcDefine *pDefines,
_In_ UINT32 defineCount,
_COM_Outptr_ IDxcOperationResult **ppResult) = 0;
virtual HRESULT STDMETHODCALLTYPE RewriteUnchanged(_In_ IDxcBlobEncoding *pSource,
_In_count_(defineCount) DxcDefine *pDefines,
_In_ UINT32 defineCount,
_COM_Outptr_ IDxcOperationResult **ppResult) = 0;
virtual HRESULT STDMETHODCALLTYPE RewriteUnchangedWithInclude(_In_ IDxcBlobEncoding *pSource,
// Optional file name for pSource. Used in errors and include handlers.
_In_opt_ LPCWSTR pSourceName,
_In_count_(defineCount) DxcDefine *pDefines,
_In_ UINT32 defineCount,
// user-provided interface to handle #include directives (optional)
_In_opt_ IDxcIncludeHandler *pIncludeHandler,
_In_ UINT32 rewriteOption,
_COM_Outptr_ IDxcOperationResult **ppResult) = 0;
DECLARE_CROSS_PLATFORM_UUIDOF(IDxcRewriter)
};
#ifdef _MSC_VER
#define CLSID_SCOPE __declspec(selectany) extern
#else
#define CLSID_SCOPE
#endif
CLSID_SCOPE const CLSID
CLSID_DxcRewriter = {/* b489b951-e07f-40b3-968d-93e124734da4 */
0xb489b951,
0xe07f,
0x40b3,
{0x96, 0x8d, 0x93, 0xe1, 0x24, 0x73, 0x4d, 0xa4}};
struct __declspec(uuid("261afca1-0609-4ec6-a77f-d98c7035194e"))
IDxcRewriter2 : public IDxcRewriter {
virtual HRESULT STDMETHODCALLTYPE RewriteWithOptions(_In_ IDxcBlobEncoding *pSource,
// Optional file name for pSource. Used in errors and include handlers.
_In_opt_ LPCWSTR pSourceName,
// Compiler arguments
_In_count_(argCount) LPCWSTR *pArguments, _In_ UINT32 argCount,
// Defines
_In_count_(defineCount) DxcDefine *pDefines, _In_ UINT32 defineCount,
// user-provided interface to handle #include directives (optional)
_In_opt_ IDxcIncludeHandler *pIncludeHandler,
_COM_Outptr_ IDxcOperationResult **ppResult) = 0;
DECLARE_CROSS_PLATFORM_UUIDOF(IDxcRewriter2)
};
#endif