summaryrefslogtreecommitdiff
path: root/source/slang-capture-replay
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-06-12 09:45:50 -0700
committerGitHub <noreply@github.com>2024-06-12 09:45:50 -0700
commitccc26c2d22d471ae649bf16f37ed1cd6cfbddd1b (patch)
treef1b84f6c30d2f8aa5014587ef1b7995ae51996e4 /source/slang-capture-replay
parent318adcc27b8d89ec1d47c445a93239dd81be0b31 (diff)
Extend the COM-based API to support whole program compilation. (#4355)
Diffstat (limited to 'source/slang-capture-replay')
-rw-r--r--source/slang-capture-replay/slang-composite-component-type.cpp10
-rw-r--r--source/slang-capture-replay/slang-composite-component-type.h4
-rw-r--r--source/slang-capture-replay/slang-entrypoint.cpp10
-rw-r--r--source/slang-capture-replay/slang-entrypoint.h4
-rw-r--r--source/slang-capture-replay/slang-module.cpp10
-rw-r--r--source/slang-capture-replay/slang-module.h4
-rw-r--r--source/slang-capture-replay/slang-type-conformance.cpp10
-rw-r--r--source/slang-capture-replay/slang-type-conformance.h4
8 files changed, 56 insertions, 0 deletions
diff --git a/source/slang-capture-replay/slang-composite-component-type.cpp b/source/slang-capture-replay/slang-composite-component-type.cpp
index 09fcec357..f18f4b9cb 100644
--- a/source/slang-capture-replay/slang-composite-component-type.cpp
+++ b/source/slang-capture-replay/slang-composite-component-type.cpp
@@ -58,6 +58,16 @@ namespace SlangCapture
return res;
}
+ SLANG_NO_THROW SlangResult CompositeComponentTypeCapture::getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics)
+ {
+ slangCaptureLog(LogLevel::Verbose, "%s\n", __PRETTY_FUNCTION__);
+ SlangResult res = m_actualCompositeComponentType->getTargetCode(targetIndex, outCode, outDiagnostics);
+ return res;
+ }
+
SLANG_NO_THROW SlangResult CompositeComponentTypeCapture::getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,
diff --git a/source/slang-capture-replay/slang-composite-component-type.h b/source/slang-capture-replay/slang-composite-component-type.h
index 36cdd16a5..17b11f2c1 100644
--- a/source/slang-capture-replay/slang-composite-component-type.h
+++ b/source/slang-capture-replay/slang-composite-component-type.h
@@ -59,6 +59,10 @@ namespace SlangCapture
uint32_t compilerOptionEntryCount,
slang::CompilerOptionEntry* compilerOptionEntries,
ISlangBlob** outDiagnostics = nullptr) override;
+ virtual SLANG_NO_THROW SlangResult SLANG_MCALL getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics = nullptr) override;
slang::IComponentType* getActualCompositeComponentType() const { return m_actualCompositeComponentType; }
private:
diff --git a/source/slang-capture-replay/slang-entrypoint.cpp b/source/slang-capture-replay/slang-entrypoint.cpp
index 05e25fcb0..1a975bacb 100644
--- a/source/slang-capture-replay/slang-entrypoint.cpp
+++ b/source/slang-capture-replay/slang-entrypoint.cpp
@@ -57,6 +57,16 @@ namespace SlangCapture
return res;
}
+ SLANG_NO_THROW SlangResult EntryPointCapture::getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics)
+ {
+ slangCaptureLog(LogLevel::Verbose, "%s\n", __PRETTY_FUNCTION__);
+ SlangResult res = m_actualEntryPoint->getTargetCode(targetIndex, outCode, outDiagnostics);
+ return res;
+ }
+
SLANG_NO_THROW SlangResult EntryPointCapture::getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,
diff --git a/source/slang-capture-replay/slang-entrypoint.h b/source/slang-capture-replay/slang-entrypoint.h
index 2ff3b0718..98501284b 100644
--- a/source/slang-capture-replay/slang-entrypoint.h
+++ b/source/slang-capture-replay/slang-entrypoint.h
@@ -33,6 +33,10 @@ namespace SlangCapture
SlangInt targetIndex,
slang::IBlob** outCode,
slang::IBlob** outDiagnostics = nullptr) override;
+ virtual SLANG_NO_THROW SlangResult SLANG_MCALL getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics = nullptr) override;
virtual SLANG_NO_THROW SlangResult SLANG_MCALL getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,
diff --git a/source/slang-capture-replay/slang-module.cpp b/source/slang-capture-replay/slang-module.cpp
index 31aa6bd54..55743dd78 100644
--- a/source/slang-capture-replay/slang-module.cpp
+++ b/source/slang-capture-replay/slang-module.cpp
@@ -155,6 +155,16 @@ namespace SlangCapture
return res;
}
+ SLANG_NO_THROW SlangResult ModuleCapture::getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics)
+ {
+ slangCaptureLog(LogLevel::Verbose, "%s\n", __PRETTY_FUNCTION__);
+ SlangResult res = m_actualModule->getTargetCode(targetIndex, outCode, outDiagnostics);
+ return res;
+ }
+
SLANG_NO_THROW SlangResult ModuleCapture::getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,
diff --git a/source/slang-capture-replay/slang-module.h b/source/slang-capture-replay/slang-module.h
index d1180c828..5350bc066 100644
--- a/source/slang-capture-replay/slang-module.h
+++ b/source/slang-capture-replay/slang-module.h
@@ -47,6 +47,10 @@ namespace SlangCapture
SlangInt targetIndex,
slang::IBlob** outCode,
slang::IBlob** outDiagnostics = nullptr) override;
+ virtual SLANG_NO_THROW SlangResult SLANG_MCALL getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics = nullptr) override;
virtual SLANG_NO_THROW SlangResult SLANG_MCALL getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,
diff --git a/source/slang-capture-replay/slang-type-conformance.cpp b/source/slang-capture-replay/slang-type-conformance.cpp
index 1ca9cf737..747ed119e 100644
--- a/source/slang-capture-replay/slang-type-conformance.cpp
+++ b/source/slang-capture-replay/slang-type-conformance.cpp
@@ -60,6 +60,16 @@ namespace SlangCapture
return res;
}
+ SLANG_NO_THROW SlangResult TypeConformanceCapture::getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics)
+ {
+ slangCaptureLog(LogLevel::Verbose, "%s\n", __PRETTY_FUNCTION__);
+ SlangResult res = m_actualTypeConformance->getTargetCode(targetIndex, outCode, outDiagnostics);
+ return res;
+ }
+
SLANG_NO_THROW SlangResult TypeConformanceCapture::getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,
diff --git a/source/slang-capture-replay/slang-type-conformance.h b/source/slang-capture-replay/slang-type-conformance.h
index e2a7b27c9..c9e5f12a3 100644
--- a/source/slang-capture-replay/slang-type-conformance.h
+++ b/source/slang-capture-replay/slang-type-conformance.h
@@ -33,6 +33,10 @@ namespace SlangCapture
SlangInt targetIndex,
slang::IBlob** outCode,
slang::IBlob** outDiagnostics = nullptr) override;
+ virtual SLANG_NO_THROW SlangResult SLANG_MCALL getTargetCode(
+ SlangInt targetIndex,
+ slang::IBlob** outCode,
+ slang::IBlob** outDiagnostics = nullptr) override;
virtual SLANG_NO_THROW SlangResult SLANG_MCALL getResultAsFileSystem(
SlangInt entryPointIndex,
SlangInt targetIndex,