Skip to content

Commit d467cee

Browse files
author
devsh
committed
start testing the frontend!
1 parent 39f5639 commit d467cee

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

13_MaterialCompilerTest/main.cpp

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
#include "nbl/examples/examples.hpp"
77

88
//! Temporary
9-
#include "nbl/asset/material_compiler3/IR.h"
9+
#include "nbl/asset/material_compiler3/CFrontendIR.h"
1010

1111

1212
using namespace nbl;
1313
using namespace nbl::core;
1414
using namespace nbl::hlsl;
1515
using namespace nbl::system;
1616
using namespace nbl::asset;
17+
using namespace nbl::asset::material_compiler3;
1718
using namespace nbl::ui;
1819
using namespace nbl::video;
1920
using namespace nbl::examples;
@@ -39,7 +40,39 @@ class MaterialCompilerTest final : public application_templates::MonoDeviceAppli
3940
if (!asset_base_t::onAppInitialized(std::move(system)))
4041
return false;
4142

42-
//
43+
auto forest = CFrontendIR::create();
44+
45+
auto logger = m_logger.get();
46+
// TODO: use std::source_info
47+
#define ASSERT_VALUE(WHAT,VALUE,MSG) if (WHAT!=VALUE) return logFail("%s:%d test doesn't match expected value. %s",__FILE__,__LINE__,MSG)
48+
49+
// simple white furnace testing materials
50+
{
51+
{
52+
auto layerH = forest->_new<CFrontendIR::CLayer>();
53+
auto* layer = forest->deref(layerH);
54+
// layer->btdf = forest->_new<CFrontendIR::CDeltaTransmission>();
55+
ASSERT_VALUE(forest->addMaterial(layerH,logger),true,"Add Material");
56+
}
57+
}
58+
59+
smart_refctd_ptr<IFile> file;
60+
{
61+
m_system->deleteFile(localOutputCWD/"frontend.dot");
62+
ISystem::future_t<smart_refctd_ptr<IFile>> future;
63+
m_system->createFile(future,localOutputCWD/"frontend.dot",IFileBase::E_CREATE_FLAGS::ECF_WRITE);
64+
if (!future.wait())
65+
return logFail("Failed to Open file for writing");
66+
future.acquire().move_into(file);
67+
}
68+
if (file)
69+
{
70+
auto visualization = forest->printDotGraph();
71+
// file write does not take an internal copy of pointer given, need to keep source alive till end
72+
IFile::success_t succ;
73+
file->write(succ,visualization.c_str(),0,visualization.size());
74+
succ.getBytesProcessed();
75+
}
4376

4477
return true;
4578
}

0 commit comments

Comments
 (0)