Skip to content

Commit

Permalink
rename memoryCompress function
Browse files Browse the repository at this point in the history
  • Loading branch information
malytomas committed Dec 12, 2024
1 parent 70932c2 commit 931fb70
Show file tree
Hide file tree
Showing 14 changed files with 27 additions and 28 deletions.
5 changes: 2 additions & 3 deletions sources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,8 @@ if(MSVC)
target_compile_definitions(cage-core PUBLIC "CAGE_API_IMPORT=__declspec(dllimport)")
target_compile_definitions(cage-core PUBLIC "CAGE_FORCE_INLINE=__forceinline")
else()
# protected, unlike default, prevents interposition
target_compile_definitions(cage-core PUBLIC "CAGE_API_EXPORT=[[gnu::visibility(\"protected\")]]")
target_compile_definitions(cage-core PUBLIC "CAGE_API_IMPORT=[[gnu::visibility(\"protected\")]]")
target_compile_definitions(cage-core PUBLIC "CAGE_API_EXPORT=[[gnu::visibility(\"default\")]]")
target_compile_definitions(cage-core PUBLIC "CAGE_API_IMPORT=[[gnu::visibility(\"default\")]]")
target_compile_definitions(cage-core PUBLIC "CAGE_FORCE_INLINE=[[gnu::always_inline]]inline")
endif()
if(WIN32)
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/animation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ void processAnimation()

Holder<PointerRange<char>> buff = anim->exportBuffer();
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (before compression): " + buff.size());
Holder<PointerRange<char>> comp = compress(buff);
Holder<PointerRange<char>> comp = memoryCompress(buff);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (after compression): " + comp.size());

AssetHeader h = initializeAssetHeader();
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/collider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ void processCollider()

Holder<PointerRange<char>> buff = collider->exportBuffer();
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (before compression): " + buff.size());
Holder<PointerRange<char>> comp = compress(buff);
Holder<PointerRange<char>> comp = memoryCompress(buff);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (after compression): " + comp.size());

AssetHeader h = initializeAssetHeader();
Expand Down
4 changes: 2 additions & 2 deletions sources/asset-processor/font.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ namespace
AssetHeader h = initializeAssetHeader();
h.scheme = AssetSchemeIndexTexture;
h.originalSize = inputBuffer.size();
Holder<PointerRange<char>> outputBuffer = compress(inputBuffer);
Holder<PointerRange<char>> outputBuffer = memoryCompress(inputBuffer);
h.compressedSize = outputBuffer.size();
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "texture file size: " + h.originalSize + ", compressed size: " + h.compressedSize + ", ratio: " + h.compressedSize / (float)h.originalSize);

Expand Down Expand Up @@ -339,7 +339,7 @@ namespace
sr << g.data;

CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (before compression): " + buf.size());
Holder<PointerRange<char>> buf2 = compress(buf);
Holder<PointerRange<char>> buf2 = memoryCompress(buf);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (after compression): " + buf2.size());

AssetHeader h = initializeAssetHeader();
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/model.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ void processModel()
ser << mat;
ser.write(part.mesh->exportBuffer());
h.originalSize = buffer.size();
Holder<PointerRange<char>> compressed = compress(buffer);
Holder<PointerRange<char>> compressed = memoryCompress(buffer);
h.compressedSize = compressed.size();

Holder<File> f = writeFile(outputFileName);
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/raw.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ void processRaw()
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "original data size: " + data.size() + " bytes");
if (data.size() >= toUint32(properties("compressThreshold")))
{
Holder<PointerRange<char>> data2 = compress(data);
Holder<PointerRange<char>> data2 = memoryCompress(data);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "compressed data size: " + data2.size() + " bytes");
if (data2.size() < data.size())
{
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/shader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ void processShader()
}

CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (before compression): " + buff.size());
Holder<PointerRange<char>> comp = compress(buff);
Holder<PointerRange<char>> comp = memoryCompress(buff);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (after compression): " + comp.size());

AssetHeader h = initializeAssetHeader();
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/skeleton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ void processSkeleton()
Holder<SkeletonRig> rig = result.skeleton.share();
Holder<PointerRange<char>> buff = rig->exportBuffer();
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (before compression): " + buff.size());
Holder<PointerRange<char>> comp = compress(buff);
Holder<PointerRange<char>> comp = memoryCompress(buff);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (after compression): " + comp.size());

AssetHeader h = initializeAssetHeader();
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/texts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ void processTexts()

Holder<PointerRange<char>> buff = txt->exportBuffer();
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (before compression): " + buff.size());
Holder<PointerRange<char>> comp = compress(buff);
Holder<PointerRange<char>> comp = memoryCompress(buff);
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "buffer size (after compression): " + comp.size());

AssetHeader h = initializeAssetHeader();
Expand Down
2 changes: 1 addition & 1 deletion sources/asset-processor/texture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ namespace

AssetHeader h = initializeAssetHeader();
h.originalSize = inputBuffer.size();
Holder<PointerRange<char>> outputBuffer = compress(inputBuffer);
Holder<PointerRange<char>> outputBuffer = memoryCompress(inputBuffer);
h.compressedSize = outputBuffer.size();
CAGE_LOG(SeverityEnum::Info, "assetProcessor", Stringizer() + "final size: " + h.originalSize + ", compressed size: " + h.compressedSize + ", ratio: " + h.compressedSize / (float)h.originalSize);

Expand Down
8 changes: 4 additions & 4 deletions sources/include/cage-core/memoryCompression.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ namespace cage
{
// preference = 100 -> best compression ratio, but very slow
// preference = 0 -> full compression speed, but worse compression ratio
CAGE_CORE_API Holder<PointerRange<char>> compress(PointerRange<const char> input, sint32 preference = 90);
CAGE_CORE_API Holder<PointerRange<char>> decompress(PointerRange<const char> input, uintPtr outputSize);
CAGE_CORE_API void compress(PointerRange<const char> input, PointerRange<char> &output, sint32 preference = 90);
CAGE_CORE_API void decompress(PointerRange<const char> input, PointerRange<char> &output);
CAGE_CORE_API Holder<PointerRange<char>> memoryCompress(PointerRange<const char> input, sint32 preference = 90);
CAGE_CORE_API Holder<PointerRange<char>> memoryDecompress(PointerRange<const char> input, uintPtr outputSize);
CAGE_CORE_API void memoryCompress(PointerRange<const char> input, PointerRange<char> &output, sint32 preference = 90);
CAGE_CORE_API void memoryDecompress(PointerRange<const char> input, PointerRange<char> &output);
CAGE_CORE_API uintPtr compressionBound(uintPtr size);
}

Expand Down
2 changes: 1 addition & 1 deletion sources/libcore/assets/assetsManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -841,7 +841,7 @@ namespace cage
{
if (asset->compressedData.size() == 0)
return;
decompress(*asset->compressedData, *asset->originalData);
memoryDecompress(*asset->compressedData, *asset->originalData);
}
}

Expand Down
12 changes: 6 additions & 6 deletions sources/libcore/memory/compression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,25 @@

namespace cage
{
Holder<PointerRange<char>> compress(PointerRange<const char> input, sint32 preference)
Holder<PointerRange<char>> memoryCompress(PointerRange<const char> input, sint32 preference)
{
MemoryBuffer result(compressionBound(input.size()));
PointerRange<char> output = result;
compress(input, output, preference);
memoryCompress(input, output, preference);
result.resize(output.size());
return std::move(result);
}

Holder<PointerRange<char>> decompress(PointerRange<const char> input, uintPtr outputSize)
Holder<PointerRange<char>> memoryDecompress(PointerRange<const char> input, uintPtr outputSize)
{
MemoryBuffer result(outputSize);
PointerRange<char> output = result;
decompress(input, output);
memoryDecompress(input, output);
result.resize(output.size());
return std::move(result);
}

void compress(PointerRange<const char> input, PointerRange<char> &output, sint32 preference)
void memoryCompress(PointerRange<const char> input, PointerRange<char> &output, sint32 preference)
{
const int level = clamp(ZSTD_maxCLevel() * preference / 100, ZSTD_minCLevel(), ZSTD_maxCLevel());
const std::size_t r = ZSTD_compress(output.data(), output.size(), input.data(), input.size(), level);
Expand All @@ -34,7 +34,7 @@ namespace cage
output = PointerRange<char>(output.data(), output.data() + r);
}

void decompress(PointerRange<const char> input, PointerRange<char> &output)
void memoryDecompress(PointerRange<const char> input, PointerRange<char> &output)
{
const std::size_t r = ZSTD_decompress(output.data(), output.size(), input.data(), input.size());
if (ZSTD_isError(r))
Expand Down
8 changes: 4 additions & 4 deletions sources/test-core/memoryBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ void testMemoryBuffers()
MemoryBuffer b1(1000);
for (uintPtr i = 0, e = b1.size(); i < e; i++)
((uint8 *)b1.data())[i] = (uint8)i;
Holder<PointerRange<char>> b2 = compress(b1);
Holder<PointerRange<char>> b2 = memoryCompress(b1);
CAGE_TEST(b2.size() < b1.size());
Holder<PointerRange<char>> b3 = decompress(b2, 2000);
Holder<PointerRange<char>> b3 = memoryDecompress(b2, 2000);
CAGE_TEST(b3.size() == b1.size());
CAGE_TEST(detail::memcmp(b3.data(), b1.data(), b1.size()) == 0);
}
Expand All @@ -70,8 +70,8 @@ void testMemoryBuffers()
MemoryBuffer b1(128);
for (uintPtr i = 0, e = b1.size(); i < e; i++)
((uint8 *)b1.data())[i] = (uint8)i;
Holder<PointerRange<char>> b2 = compress(b1);
Holder<PointerRange<char>> b3 = decompress(b2, 200);
Holder<PointerRange<char>> b2 = memoryCompress(b1);
Holder<PointerRange<char>> b3 = memoryDecompress(b2, 200);
CAGE_TEST(b3.size() == b1.size());
CAGE_TEST(detail::memcmp(b3.data(), b1.data(), b1.size()) == 0);
}
Expand Down

0 comments on commit 931fb70

Please sign in to comment.