mirror of
https://github.com/microsoft/DirectXTex.git
synced 2025-07-09 03:30:13 +02:00
Add VERSIONINFO to DLL version of library (#578)
This commit is contained in:
parent
3a7adffc46
commit
87e8b9513f
17
.github/workflows/main.yml
vendored
17
.github/workflows/main.yml
vendored
@ -103,6 +103,10 @@ jobs:
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out\build\${{ matrix.build_type }}
|
||||
|
||||
- name: 'Clean up'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: Remove-Item -Path out -Recurse -Force
|
||||
|
||||
- if: matrix.arch != 'amd64_arm64'
|
||||
name: 'Configure CMake (Spectre)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
@ -112,3 +116,16 @@ jobs:
|
||||
name: 'Build (Spectre)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out\build\${{ matrix.build_type }}
|
||||
|
||||
- if: matrix.arch != 'amd64_arm64'
|
||||
name: 'Clean up'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: Remove-Item -Path out -Recurse -Force
|
||||
|
||||
- name: 'Configure CMake (DLL)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --preset=${{ matrix.build_type }} -DBUILD_SHARED_LIBS=ON
|
||||
|
||||
- name: 'Build (DLL)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out\build\${{ matrix.build_type }}
|
||||
|
15
.github/workflows/test.yml
vendored
15
.github/workflows/test.yml
vendored
@ -154,3 +154,18 @@ jobs:
|
||||
- name: 'Build'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out\build\${{ matrix.build_type }}
|
||||
|
||||
- name: 'Clean up'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: Remove-Item -Path out -Recurse -Force
|
||||
|
||||
- name: 'Configure CMake (DLL)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: >
|
||||
cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON -DBUILD_TOOLS=OFF -DBUILD_SAMPLE=OFF -DENABLE_LIBJPEG_SUPPORT=ON -DENABLE_LIBPNG_SUPPORT=ON
|
||||
-DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_DIR="${{ github.workspace }}/build"
|
||||
-DVCPKG_TARGET_TRIPLET="${env:VCPKG_DEFAULT_TRIPLET}" -DBUILD_SHARED_LIBS=ON
|
||||
|
||||
- name: 'Build (DLL)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out\build\${{ matrix.build_type }}
|
||||
|
19
.github/workflows/wsl.yml
vendored
19
.github/workflows/wsl.yml
vendored
@ -74,3 +74,22 @@ jobs:
|
||||
- name: 'Build'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out/build/${{ matrix.build_type }}
|
||||
|
||||
- name: 'Clean up'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: rm -rf out
|
||||
|
||||
- name: 'Configure CMake (-shared)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: >
|
||||
cmake --preset=${{ matrix.build_type }} -DENABLE_OPENEXR_SUPPORT=ON -DENABLE_LIBJPEG_SUPPORT=ON -DENABLE_LIBPNG_SUPPORT=ON
|
||||
-DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_DIR="${{ github.workspace }}/build"
|
||||
-DVCPKG_TARGET_TRIPLET="x64-linux" -DBUILD_SHARED_LIBS=ON
|
||||
|
||||
env:
|
||||
CC: gcc-${{ matrix.gcc }}
|
||||
CXX: g++-${{ matrix.gcc }}
|
||||
|
||||
- name: 'Build (-shared)'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: cmake --build out/build/${{ matrix.build_type }}
|
||||
|
@ -513,8 +513,8 @@ HRESULT DirectX::SaveToEXRFile(const Image& image, const wchar_t* szFile)
|
||||
|
||||
try
|
||||
{
|
||||
const int width = static_cast<int>(image.width);
|
||||
const int height = static_cast<int>(image.height);
|
||||
const auto width = static_cast<int>(image.width);
|
||||
const auto height = static_cast<int>(image.height);
|
||||
|
||||
#ifdef _WIN32
|
||||
Imf::RgbaOutputFile file(stream, Imf::Header(width, height), Imf::WRITE_RGBA);
|
||||
@ -529,7 +529,7 @@ HRESULT DirectX::SaveToEXRFile(const Image& image, const wchar_t* szFile)
|
||||
}
|
||||
else
|
||||
{
|
||||
const uint64_t bytes = image.width * image.height;
|
||||
const auto bytes = static_cast<uint64_t>(image.width) * static_cast<uint64_t>(image.height);
|
||||
|
||||
if (bytes > static_cast<uint64_t>(UINT32_MAX))
|
||||
{
|
||||
|
@ -14,13 +14,15 @@
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
HRESULT __cdecl GetMetadataFromEXRFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromEXRFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_ TexMetadata& metadata);
|
||||
|
||||
HRESULT __cdecl LoadFromEXRFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromEXRFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_opt_ TexMetadata* metadata, _Out_ ScratchImage& image);
|
||||
|
||||
HRESULT __cdecl SaveToEXRFile(_In_ const Image& image, _In_z_ const wchar_t* szFile);
|
||||
DIRECTX_TEX_API HRESULT __cdecl SaveToEXRFile(
|
||||
_In_ const Image& image,
|
||||
_In_z_ const wchar_t* szFile);
|
||||
}
|
||||
|
@ -18,16 +18,16 @@
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
HRESULT __cdecl GetMetadataFromJPEGFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromJPEGFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_ TexMetadata& metadata);
|
||||
|
||||
HRESULT __cdecl LoadFromJPEGFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromJPEGFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_opt_ TexMetadata* metadata,
|
||||
_Out_ ScratchImage& image);
|
||||
|
||||
HRESULT __cdecl SaveToJPEGFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl SaveToJPEGFile(
|
||||
_In_ const Image& image,
|
||||
_In_z_ const wchar_t* szFile);
|
||||
}
|
||||
|
@ -18,16 +18,16 @@
|
||||
|
||||
namespace DirectX
|
||||
{
|
||||
HRESULT __cdecl GetMetadataFromPNGFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromPNGFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_ TexMetadata& metadata);
|
||||
|
||||
HRESULT __cdecl LoadFromPNGFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromPNGFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_opt_ TexMetadata* metadata,
|
||||
_Out_ ScratchImage& image);
|
||||
|
||||
HRESULT __cdecl SaveToPNGFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl SaveToPNGFile(
|
||||
_In_ const Image& image,
|
||||
_In_z_ const wchar_t* szFile);
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ namespace Xbox
|
||||
constexpr XboxTileMode c_XboxTileModeLinear = XG_TILE_MODE_LINEAR;
|
||||
#endif
|
||||
|
||||
class XboxImage
|
||||
class DIRECTX_TEX_API XboxImage
|
||||
{
|
||||
public:
|
||||
XboxImage() noexcept
|
||||
@ -97,40 +97,40 @@ namespace Xbox
|
||||
//---------------------------------------------------------------------------------
|
||||
// Image I/O
|
||||
|
||||
HRESULT __cdecl GetMetadataFromDDSMemory(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromDDSMemory(
|
||||
_In_reads_bytes_(size) const uint8_t* pSource, _In_ size_t size,
|
||||
_Out_ DirectX::TexMetadata& metadata, _Out_ bool& isXbox);
|
||||
HRESULT __cdecl GetMetadataFromDDSFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromDDSFile(
|
||||
_In_z_ const wchar_t* szFile, _Out_ DirectX::TexMetadata& metadata, _Out_ bool& isXbox);
|
||||
|
||||
HRESULT __cdecl GetMetadataFromDDSMemoryEx(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromDDSMemoryEx(
|
||||
_In_reads_bytes_(size) const uint8_t* pSource, _In_ size_t size,
|
||||
_Out_ DirectX::TexMetadata& metadata, _Out_ bool& isXbox,
|
||||
_Out_opt_ DirectX::DDSMetaData* ddPixelFormat);
|
||||
HRESULT __cdecl GetMetadataFromDDSFileEx(
|
||||
DIRECTX_TEX_API HRESULT __cdecl GetMetadataFromDDSFileEx(
|
||||
_In_z_ const wchar_t* szFile, _Out_ DirectX::TexMetadata& metadata, _Out_ bool& isXbox,
|
||||
_Out_opt_ DirectX::DDSMetaData* ddPixelFormat);
|
||||
|
||||
HRESULT __cdecl LoadFromDDSMemory(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromDDSMemory(
|
||||
_In_reads_bytes_(size) const uint8_t* pSource, _In_ size_t size,
|
||||
_Out_opt_ DirectX::TexMetadata* metadata, _Out_ XboxImage& image);
|
||||
HRESULT __cdecl LoadFromDDSFile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromDDSFile(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_opt_ DirectX::TexMetadata* metadata, _Out_ XboxImage& image);
|
||||
|
||||
HRESULT __cdecl LoadFromDDSMemoryEx(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromDDSMemoryEx(
|
||||
_In_reads_bytes_(size) const uint8_t* pSource, _In_ size_t size,
|
||||
_Out_opt_ DirectX::TexMetadata* metadata,
|
||||
_Out_opt_ DirectX::DDSMetaData* ddPixelFormat,
|
||||
_Out_ XboxImage& image);
|
||||
HRESULT __cdecl LoadFromDDSFileEx(
|
||||
DIRECTX_TEX_API HRESULT __cdecl LoadFromDDSFileEx(
|
||||
_In_z_ const wchar_t* szFile,
|
||||
_Out_opt_ DirectX::TexMetadata* metadata,
|
||||
_Out_opt_ DirectX::DDSMetaData* ddPixelFormat,
|
||||
_Out_ XboxImage& image);
|
||||
|
||||
HRESULT __cdecl SaveToDDSMemory(_In_ const XboxImage& xbox, _Out_ DirectX::Blob& blob);
|
||||
HRESULT __cdecl SaveToDDSFile(_In_ const XboxImage& xbox, _In_z_ const wchar_t* szFile);
|
||||
DIRECTX_TEX_API HRESULT __cdecl SaveToDDSMemory(_In_ const XboxImage& xbox, _Out_ DirectX::Blob& blob);
|
||||
DIRECTX_TEX_API HRESULT __cdecl SaveToDDSFile(_In_ const XboxImage& xbox, _In_z_ const wchar_t* szFile);
|
||||
|
||||
#ifdef __cpp_lib_byte
|
||||
inline HRESULT __cdecl GetMetadataFromDDSMemory(
|
||||
@ -168,27 +168,27 @@ namespace Xbox
|
||||
//---------------------------------------------------------------------------------
|
||||
// Xbox Texture Tiling / Detiling (requires XG DLL to be present at runtime)
|
||||
|
||||
HRESULT __cdecl Tile(_In_ const DirectX::Image& srcImage, _Out_ XboxImage& xbox, _In_ XboxTileMode mode = c_XboxTileModeInvalid);
|
||||
HRESULT __cdecl Tile(
|
||||
DIRECTX_TEX_API HRESULT __cdecl Tile(_In_ const DirectX::Image& srcImage, _Out_ XboxImage& xbox, _In_ XboxTileMode mode = c_XboxTileModeInvalid);
|
||||
DIRECTX_TEX_API HRESULT __cdecl Tile(
|
||||
_In_ const DirectX::Image* srcImages, _In_ size_t nimages, _In_ const DirectX::TexMetadata& metadata,
|
||||
_Out_ XboxImage& xbox, _In_ XboxTileMode mode = c_XboxTileModeInvalid);
|
||||
|
||||
HRESULT __cdecl Detile(_In_ const XboxImage& xbox, _Out_ DirectX::ScratchImage& image);
|
||||
DIRECTX_TEX_API HRESULT __cdecl Detile(_In_ const XboxImage& xbox, _Out_ DirectX::ScratchImage& image);
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Direct3D 11.X functions
|
||||
|
||||
#if defined(_XBOX_ONE) && defined(_TITLE) && defined(__d3d11_x_h__)
|
||||
|
||||
HRESULT __cdecl CreateTexture(
|
||||
DIRECTX_TEX_API HRESULT __cdecl CreateTexture(
|
||||
_In_ ID3D11DeviceX* d3dDevice,
|
||||
_In_ const XboxImage& xbox, _Outptr_opt_ ID3D11Resource** ppResource, _Outptr_ void** grfxMemory);
|
||||
|
||||
HRESULT __cdecl CreateShaderResourceView(
|
||||
DIRECTX_TEX_API HRESULT __cdecl CreateShaderResourceView(
|
||||
_In_ ID3D11DeviceX* d3dDevice,
|
||||
_In_ const XboxImage& xbox, _Outptr_opt_ ID3D11ShaderResourceView** ppSRV, _Outptr_ void** grfxMemory);
|
||||
|
||||
void __cdecl FreeTextureMemory(_In_ ID3D11DeviceX* d3dDevice, _In_opt_ void* grfxMemory);
|
||||
DIRECTX_TEX_API void __cdecl FreeTextureMemory(_In_ ID3D11DeviceX* d3dDevice, _In_opt_ void* grfxMemory);
|
||||
|
||||
#endif
|
||||
|
||||
@ -197,17 +197,17 @@ namespace Xbox
|
||||
|
||||
#if ((defined(_XBOX_ONE) && defined(_TITLE)) || defined(_GAMING_XBOX)) && (defined(__d3d12_x_h__) || defined(__XBOX_D3D12_X__))
|
||||
|
||||
HRESULT __cdecl CreateTexture(
|
||||
DIRECTX_TEX_API HRESULT __cdecl CreateTexture(
|
||||
_In_ ID3D12Device* d3dDevice,
|
||||
_In_ const XboxImage& xbox, _Outptr_opt_ ID3D12Resource** ppResource, _Outptr_ void** grfxMemory);
|
||||
|
||||
void __cdecl FreeTextureMemory(_In_ ID3D12Device* d3dDevice, _In_opt_ void* grfxMemory);
|
||||
DIRECTX_TEX_API void __cdecl FreeTextureMemory(_In_ ID3D12Device* d3dDevice, _In_opt_ void* grfxMemory);
|
||||
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// DDS helper functions
|
||||
HRESULT __cdecl EncodeDDSHeader(
|
||||
DIRECTX_TEX_API HRESULT __cdecl EncodeDDSHeader(
|
||||
const XboxImage& xbox,
|
||||
_Out_writes_bytes_(maxsize) uint8_t* pDestination, _In_ size_t maxsize) noexcept;
|
||||
|
||||
|
@ -222,11 +222,19 @@ if(BUILD_DX11 AND WIN32 AND (NOT (XBOX_CONSOLE_TARGET STREQUAL "durango")))
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(${PROJECT_NAME} ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
|
||||
|
||||
if(WIN32 AND BUILD_SHARED_LIBS)
|
||||
message(STATUS "Build library as a DLL")
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/build/DirectXTex.rc.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/DirectXTex.rc" @ONLY)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS} "${CMAKE_CURRENT_BINARY_DIR}/DirectXTex.rc")
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE DIRECTX_TEX_EXPORT)
|
||||
target_compile_definitions(${PROJECT_NAME} INTERFACE DIRECTX_TEX_IMPORT)
|
||||
else()
|
||||
add_library(${PROJECT_NAME} ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
|
||||
endif()
|
||||
|
||||
if(BUILD_DX11 AND WIN32)
|
||||
|
@ -152,3 +152,23 @@ jobs:
|
||||
inputs:
|
||||
cwd: ''
|
||||
cmakeArgs: --build out4 -v --config RelWithDebInfo
|
||||
- task: CMake@1
|
||||
displayName: 'CMake (MSVC): Config x64 (Xbox Series X|S, DLL)'
|
||||
inputs:
|
||||
cwd: ''
|
||||
cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out5 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_XBOX_EXTS_SCARLETT=ON -DBUILD_SAMPLE=OFF -DBUILD_SHARED_LIBS=ON'
|
||||
- task: CMake@1
|
||||
displayName: 'CMake (MSVC): Build x64 Debug (Xbox Series X|S, DLL)'
|
||||
inputs:
|
||||
cwd: ''
|
||||
cmakeArgs: --build out5 -v --config Debug
|
||||
- task: CMake@1
|
||||
displayName: 'CMake (MSVC): Config x64 (Xbox One, DLL)'
|
||||
inputs:
|
||||
cwd: ''
|
||||
cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out6 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_XBOX_EXTS_XBOXONE=ON -DBUILD_SAMPLE=OFF -DBUILD_SHARED_LIBS=ON'
|
||||
- task: CMake@1
|
||||
displayName: 'CMake (MSVC): Build x64 Debug (Xbox One, DLL)'
|
||||
inputs:
|
||||
cwd: ''
|
||||
cmakeArgs: --build out6 -v --config Debug
|
||||
|
34
build/DirectXTex.rc.in
Normal file
34
build/DirectXTex.rc.in
Normal file
@ -0,0 +1,34 @@
|
||||
#include <winres.h>
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,0
|
||||
PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Microsoft Corp"
|
||||
VALUE "FileDescription", "DirectXTex texture processing library"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
VALUE "InternalName", "directxtex.dll"
|
||||
VALUE "LegalCopyright", "Copyright (c) Microsoft Corp."
|
||||
VALUE "OriginalFilename", "directxtex.dll"
|
||||
VALUE "ProductName", "DirectXTex"
|
||||
VALUE "ProductVersion", "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
@ -7,5 +7,5 @@ param(
|
||||
[string]$version
|
||||
)
|
||||
$versionComma = $version.Replace(".", ",")
|
||||
$files = 'Texassemble\texassemble.rc', 'Texconv\Texconv.rc', 'Texdiag\texdiag.rc'
|
||||
$files = 'Texassemble\texassemble.rc', 'Texconv\Texconv.rc', 'Texdiag\texdiag.rc', 'build\DirectXTex.rc.in'
|
||||
foreach ($file in $files) { (Get-Content $file).replace('1,0,0,0', $versionComma).replace('1.0.0.0', $version) | Set-Content $file }
|
||||
|
Loading…
x
Reference in New Issue
Block a user