From 5c56479c7b742f94ebf4a97d93826b2a5e4f279d Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 1 Sep 2020 13:47:26 -0700 Subject: Support dynamic existential shader parameters in render-test (#1525) * Support dynamic existential shader parameters in render-test * Fix linux build error. * Fixes. * Fix code review issues. * Fix gcc error. * More fixes. * More fixes. --- source/core/slang-platform.cpp | 8 ++++---- source/core/slang-platform.h | 6 +++--- source/core/slang-shared-library.cpp | 4 ++-- source/core/slang-shared-library.h | 2 +- source/slang/slang.cpp | 9 +++++++++ 5 files changed, 19 insertions(+), 10 deletions(-) (limited to 'source') diff --git a/source/core/slang-platform.cpp b/source/core/slang-platform.cpp index d02951e0b..10b9b576b 100644 --- a/source/core/slang-platform.cpp +++ b/source/core/slang-platform.cpp @@ -128,10 +128,10 @@ SLANG_COMPILE_TIME_ASSERT(E_OUTOFMEMORY == SLANG_E_OUT_OF_MEMORY); ::FreeLibrary((HMODULE)handle); } -/* static */SharedLibrary::FuncPtr SharedLibrary::findFuncByName(Handle handle, char const* name) +/* static */ void* SharedLibrary::findSymbolAddressByName(Handle handle, char const* name) { SLANG_ASSERT(handle); - return (FuncPtr)GetProcAddress((HMODULE)handle, name); + return GetProcAddress((HMODULE)handle, name); } /* static */void SharedLibrary::appendPlatformFileName(const UnownedStringSlice& name, StringBuilder& dst) @@ -173,10 +173,10 @@ SLANG_COMPILE_TIME_ASSERT(E_OUTOFMEMORY == SLANG_E_OUT_OF_MEMORY); dlclose(handle); } -/* static */SharedLibrary::FuncPtr SharedLibrary::findFuncByName(Handle handle, char const* name) +/* static */void* SharedLibrary::findSymbolAddressByName(Handle handle, char const* name) { SLANG_ASSERT(handle); - return (FuncPtr)dlsym((void*)handle, name); + return dlsym((void*)handle, name); } /* static */void SharedLibrary::appendPlatformFileName(const UnownedStringSlice& name, StringBuilder& dst) diff --git a/source/core/slang-platform.h b/source/core/slang-platform.h index 767e83c1d..804e2b773 100644 --- a/source/core/slang-platform.h +++ b/source/core/slang-platform.h @@ -93,10 +93,10 @@ namespace Slang /// @param The valid handle returned from load static void unload(Handle handle); - /// Given a shared library handle and a name, return the associated function - /// Return nullptr if function is not found + /// Given a shared library handle and a name, return the associated object + /// Return nullptr if object is not found /// @param The shared library handle as returned by loadPlatformLibrary - static FuncPtr findFuncByName(Handle handle, char const* name); + static void* findSymbolAddressByName(Handle handle, char const* name); /// Append to the end of dst, the name, with any platform specific additions /// The input name should be unadorned with any 'lib' prefix or extension diff --git a/source/core/slang-shared-library.cpp b/source/core/slang-shared-library.cpp index b09f345c7..746e14e4c 100644 --- a/source/core/slang-shared-library.cpp +++ b/source/core/slang-shared-library.cpp @@ -82,9 +82,9 @@ DefaultSharedLibrary::~DefaultSharedLibrary() } } -SlangFuncPtr DefaultSharedLibrary::findFuncByName(char const* name) +void* DefaultSharedLibrary::findSymbolAddressByName(char const* name) { - return SharedLibrary::findFuncByName(m_sharedLibraryHandle, name); + return SharedLibrary::findSymbolAddressByName(m_sharedLibraryHandle, name); } } diff --git a/source/core/slang-shared-library.h b/source/core/slang-shared-library.h index 0b5c5b2d7..c29f16289 100644 --- a/source/core/slang-shared-library.h +++ b/source/core/slang-shared-library.h @@ -52,7 +52,7 @@ class DefaultSharedLibrary : public ISlangSharedLibrary, public RefObject SLANG_REF_OBJECT_IUNKNOWN_ALL // ISlangSharedLibrary - virtual SLANG_NO_THROW SlangFuncPtr SLANG_MCALL findFuncByName(char const* name) SLANG_OVERRIDE; + virtual SLANG_NO_THROW void* SLANG_MCALL findSymbolAddressByName(char const* name) SLANG_OVERRIDE; /// Ctor. DefaultSharedLibrary(const SharedLibrary::Handle sharedLibraryHandle): diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index c78ca0a4d..889ac8203 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -3652,6 +3652,15 @@ SLANG_API SlangResult spCompileRequest_getModule( return SLANG_OK; } +SLANG_API SlangResult spCompileRequest_getSession( + SlangCompileRequest* request, + slang::ISession** outSession) +{ + auto session = Slang::asInternal(request)->getLinkage(); + *outSession = Slang::ComPtr(session).detach(); + return SLANG_OK; +} + SLANG_API SlangResult spCompileRequest_getEntryPoint( SlangCompileRequest* request, SlangInt entryPointIndex, -- cgit v1.2.3