Still just ascii for now but a bit easier to manager. Use [..]A() functions from win api to not have to convert to wide char everywhere
50 lines
1.4 KiB
C++
50 lines
1.4 KiB
C++
#include <Core/Common/String.h>
|
|
#include <Core/HAL/IO/IOStream.h>
|
|
#include <Core/Logging/LogManager.h>
|
|
#include <Core/Logging/LogTypes.h>
|
|
|
|
// Must be before everything else.
|
|
// Cannot include DX12Includes because we redefine everything.
|
|
// TODO : Separate lib
|
|
// TODO : Only when not shipping
|
|
// Check if we just load the dll and not link against?
|
|
#include <DXCompiler.h>
|
|
|
|
#pragma comment(lib, "dxcompiler.lib")
|
|
|
|
using namespace Juliet;
|
|
|
|
void Compile()
|
|
{
|
|
IDxcCompiler3* compiler = nullptr;
|
|
DxcCreateInstance(&CLSID_DxcCompiler, IID_IDxcCompiler3, reinterpret_cast<void**>(&compiler));
|
|
|
|
IDxcUtils* utils = nullptr;
|
|
DxcCreateInstance(&CLSID_DxcUtils, &IID_IDxcUtils, reinterpret_cast<void**>(&utils));
|
|
|
|
if (compiler == nullptr)
|
|
{
|
|
Juliet::Log(LogLevel::Error, LogCategory::Graphics, "Cannot create DXCompiler instance");
|
|
}
|
|
|
|
if (utils == nullptr)
|
|
{
|
|
Log(LogLevel::Error, LogCategory::Graphics, "Cannot create IDxcUtils instance");
|
|
compiler->lpVtbl->Release(compiler);
|
|
}
|
|
|
|
IDxcIncludeHandler* includeHandler;
|
|
utils->lpVtbl->CreateDefaultIncludeHandler(utils, &includeHandler);
|
|
if (includeHandler == nullptr)
|
|
{
|
|
compiler->lpVtbl->Release(compiler);
|
|
utils->lpVtbl->Release(utils);
|
|
}
|
|
}
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
auto* stream = IOFromFile(ConstString("XF"), ConstString("w"));
|
|
return 0;
|
|
}
|