summaryrefslogtreecommitdiffstats
path: root/examples/cpu-com-example
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-10-29 14:49:26 +0800
committerGitHub <noreply@github.com>2024-10-29 14:49:26 +0800
commitf65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch)
treeea1d61342cd29368e19135000ec2948813096205 /examples/cpu-com-example
parenta729c15e9dce9f5116a38afc66329ab2ca4cea54 (diff)
format
* format * Minor test fixes * enable checking cpp format in ci
Diffstat (limited to 'examples/cpu-com-example')
-rw-r--r--examples/cpu-com-example/main.cpp54
1 files changed, 34 insertions, 20 deletions
diff --git a/examples/cpu-com-example/main.cpp b/examples/cpu-com-example/main.cpp
index 62a01d17f..382b3cacd 100644
--- a/examples/cpu-com-example/main.cpp
+++ b/examples/cpu-com-example/main.cpp
@@ -1,11 +1,10 @@
// main.cpp
-#include <stdio.h>
-
+#include "slang-com-helper.h"
+#include "slang-com-ptr.h"
#include "slang.h"
-#include "slang-com-ptr.h"
-#include "slang-com-helper.h"
+#include <stdio.h>
// This includes a useful small function for setting up the prelude (described more further below).
#include "../../source/core/slang-test-tool-util.h"
@@ -17,9 +16,9 @@ using namespace Slang;
static const ExampleResources resourceBase("cpu-com-example");
-// For the moment we have to explicitly write the Slang COM interface in C++ code. It *MUST* match
+// For the moment we have to explicitly write the Slang COM interface in C++ code. It *MUST* match
// the interface in the slang source
-// As it stands all interfaces need to derive from ISlangUnknown (or IUnknown).
+// As it stands all interfaces need to derive from ISlangUnknown (or IUnknown).
class IDoThings : public ISlangUnknown
{
public:
@@ -43,19 +42,33 @@ class DoThings : public IDoThings
{
public:
// We don't need queryInterface for this impl, or ref counting
- virtual SLANG_NO_THROW SlangResult SLANG_MCALL queryInterface(SlangUUID const& uuid, void** outObject) SLANG_OVERRIDE { return SLANG_E_NOT_IMPLEMENTED; }
- virtual SLANG_NO_THROW uint32_t SLANG_MCALL addRef() SLANG_OVERRIDE { return 1; }
- virtual SLANG_NO_THROW uint32_t SLANG_MCALL release() SLANG_OVERRIDE { return 1; }
+ virtual SLANG_NO_THROW SlangResult SLANG_MCALL
+ queryInterface(SlangUUID const& uuid, void** outObject) SLANG_OVERRIDE
+ {
+ return SLANG_E_NOT_IMPLEMENTED;
+ }
+ virtual SLANG_NO_THROW uint32_t SLANG_MCALL addRef() SLANG_OVERRIDE { return 1; }
+ virtual SLANG_NO_THROW uint32_t SLANG_MCALL release() SLANG_OVERRIDE { return 1; }
// IDoThings
- virtual SLANG_NO_THROW int SLANG_MCALL doThing(int a, int b) SLANG_OVERRIDE { return a + b + 1; }
- virtual SLANG_NO_THROW int SLANG_MCALL calcHash(const char* in) SLANG_OVERRIDE { return (int)_calcHash(in); }
- virtual SLANG_NO_THROW void SLANG_MCALL printMessage(const char* in) SLANG_OVERRIDE { printf("%s\n", in); }
+ virtual SLANG_NO_THROW int SLANG_MCALL doThing(int a, int b) SLANG_OVERRIDE
+ {
+ return a + b + 1;
+ }
+ virtual SLANG_NO_THROW int SLANG_MCALL calcHash(const char* in) SLANG_OVERRIDE
+ {
+ return (int)_calcHash(in);
+ }
+ virtual SLANG_NO_THROW void SLANG_MCALL printMessage(const char* in) SLANG_OVERRIDE
+ {
+ printf("%s\n", in);
+ }
};
static SlangResult _innerMain(int argc, char** argv)
{
- // NOTE! This example only works if `slang-llvm` or a C++ compiler that Slang supports is available.
+ // NOTE! This example only works if `slang-llvm` or a C++ compiler that Slang supports is
+ // available.
// Create the session
ComPtr<slang::IGlobalSession> slangSession;
@@ -72,16 +85,17 @@ static SlangResult _innerMain(int argc, char** argv)
SLANG_ALLOW_DEPRECATED_END
// We want to compile to 'HOST_CALLABLE' here such that we can execute the Slang code.
- //
- // Note that it is possible to use HOST_HOST_CALLABLE, but this currently only works with 'regular' C++ compilers
- // not with `slang-llvm`.
+ //
+ // Note that it is possible to use HOST_HOST_CALLABLE, but this currently only works with
+ // 'regular' C++ compilers not with `slang-llvm`.
const int targetIndex = request->addCodeGenTarget(SLANG_SHADER_HOST_CALLABLE);
// Set the target flag to indicate that we want to compile all into a library.
request->setTargetFlags(targetIndex, SLANG_TARGET_FLAG_GENERATE_WHOLE_PROGRAM);
// Add the translation unit
- const int translationUnitIndex = request->addTranslationUnit(SLANG_SOURCE_LANGUAGE_SLANG, nullptr);
+ const int translationUnitIndex =
+ request->addTranslationUnit(SLANG_SOURCE_LANGUAGE_SLANG, nullptr);
// Set the source file for the translation unit
Slang::String path = resourceBase.resolveResource("shader.slang");
@@ -93,13 +107,13 @@ static SlangResult _innerMain(int argc, char** argv)
// compiler may have produced "diagnostic" output such as warnings.
// We will go ahead and print that output here.
//
- if(auto diagnostics = request->getDiagnosticOutput())
+ if (auto diagnostics = request->getDiagnosticOutput())
{
printf("%s", diagnostics);
}
- // Get the 'shared library' (note that this doesn't necessarily have to be implemented as a shared library
- // it's just an interface to executable code).
+ // Get the 'shared library' (note that this doesn't necessarily have to be implemented as a
+ // shared library it's just an interface to executable code).
ComPtr<ISlangSharedLibrary> sharedLibrary;
SLANG_RETURN_ON_FAIL(request->getTargetHostCallable(0, sharedLibrary.writeRef()));