1
0
mirror of https://github.com/borgesdan/xn65 synced 2024-12-29 21:54:47 +01:00

Remove DecompressStream

This commit is contained in:
Danilo 2024-05-09 09:15:18 -03:00
parent 676df7e150
commit dfa592ef5e
4 changed files with 1 additions and 173 deletions

View File

@ -39,7 +39,7 @@ add_executable (xna WIN32
"content/manager.cpp"
"content/reader.cpp"
"csharp/binary.cpp"
"content/decstream.cpp" "content/lzx/decoder.cpp" "content/lzx/decoderstream.cpp" "content/typereadermanager.cpp" "csharp/object.cpp" "csharp/type.cpp" "platform/init-dx.cpp" "game/servicecontainer.cpp" "common/color.cpp")
"content/lzx/decoder.cpp" "content/lzx/decoderstream.cpp" "content/typereadermanager.cpp" "csharp/object.cpp" "csharp/type.cpp" "platform/init-dx.cpp" "game/servicecontainer.cpp" "common/color.cpp")
if (CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET xna PROPERTY CXX_STANDARD 20)

View File

@ -1,111 +0,0 @@
#include "decstream.hpp"
#include <iostream>
namespace xna {
void DecompressStream::Decompress()
{
String filename = "C:\\Users\\Danilo Borges\\Documents\\xna\\projeto-final\\Game9\\bin\\Debug\\netcoreapp3.1\\Content\\Sprites\\MonsterA\\idle.xnb";
}
Int DecompressStream::Length()
{
return Int();
}
Long DecompressStream::Position()
{
return Long();
}
void DecompressStream::Close()
{
}
Long DecompressStream::Seek(Long offset, SeekOrigin const& origin, xna_error_ptr_arg)
{
return Long();
}
Int DecompressStream::Read(Byte* buffer, Int bufferLength, Int offset, Int count, xna_error_ptr_arg)
{
return Int();
}
Int DecompressStream::Read(std::vector<Byte>& buffer, Int offset, Int count, xna_error_ptr_arg)
{
return Int();
}
Int DecompressStream::ReadByte(xna_error_ptr_arg)
{
return Int();
}
void DecompressStream::Write(Byte const* buffer, Int bufferLength, Int offset, Int count, xna_error_ptr_arg)
{
}
void DecompressStream::Write(std::vector<Byte> const& buffer, Int offset, Int count, xna_error_ptr_arg)
{
}
void DecompressStream::WriteByte(Byte value, xna_error_ptr_arg)
{
}
bool DecompressStream::DecompressNextBuffer()
{
if (decompressedTodo <= 0)
return false;
do {
if (compressedPosition >= compressedSize)
ReadNextBufferFromDisk();
auto sourceSize = compressedSize - compressedPosition;
auto outputSize = 65536;
//TODO
if (outputSize == 0 && sourceSize == 0)
return false;
compressedPosition += sourceSize;
decompressedTodo -= outputSize;
decompressedSize = outputSize;
decompressedPosition = 0;
} while (decompressedSize == 0);
return true;
}
void DecompressStream::ReadNextBufferFromDisk()
{
if (compressedTodo <= 0)
return;
ReadBufferFromDisk(compressedBuffer, compressedTodo, compressedSize);
compressedPosition = 0;
}
void DecompressStream::ReadBufferFromDisk(std::vector<Byte>& buffer, Int& bufferTodo, Int& bufferSize)
{
Int num1 = 65536;
if (num1 > bufferTodo)
num1 = bufferTodo;
Int num2 = 0;
for (int offset = 0; offset < num1; offset += num2) {
num2 = baseStream->Read(buffer, offset, num1 - offset);
if (num2 == 0) return;
}
bufferTodo -= num1;
bufferSize = num1;
}
}

View File

@ -1,60 +0,0 @@
#ifndef XNA_CONTENT_DECOMPRESS_STREAM_HPP
#define XNA_CONTENT_DECOMPRESS_STREAM_HPP
#include "../default.hpp"
#include "../csharp/stream.hpp"
#include <mspack.h>
namespace xna {
class DecompressStream : public Stream {
public:
DecompressStream(sptr<Stream> const& baseStream, Int compressedTodo, Int decompressedTodo):
baseStream(baseStream), compressedTodo(compressedTodo), decompressedTodo(decompressedTodo){
compressedBuffer = std::vector<Byte>(CompressedBufferSize);
decompressedBuffer = std::vector<Byte>(DecompressedBufferSize);
decompressionContext = mspack_create_cab_decompressor(nullptr);
}
virtual ~DecompressStream() {
if (decompressionContext) {
mspack_destroy_cab_decompressor(decompressionContext);
}
}
void Decompress();
public:
// Inherited via Stream
Int Length() override;
Long Position() override;
void Close() override;
Long Seek(Long offset, SeekOrigin const& origin, xna_error_nullarg) override;
Int Read(Byte* buffer, Int bufferLength, Int offset, Int count, xna_error_nullarg) override;
Int Read(std::vector<Byte>& buffer, Int offset, Int count, xna_error_nullarg) override;
Int ReadByte(xna_error_nullarg) override;
void Write(Byte const* buffer, Int bufferLength, Int offset, Int count, xna_error_nullarg) override;
void Write(std::vector<Byte> const& buffer, Int offset, Int count, xna_error_nullarg) override;
void WriteByte(Byte value, xna_error_nullarg) override;
private:
static constexpr int CompressedBufferSize = 65536;
static constexpr int DecompressedBufferSize = 65536;
sptr<Stream> baseStream = nullptr;
Int compressedTodo{ 0 };
Int compressedSize{ 0 };
Int compressedPosition{ 0 };
std::vector<Byte> compressedBuffer;
Int decompressedTodo{ 0 };
Int decompressedSize{ 0 };
Int decompressedPosition{ 0 };
std::vector<Byte> decompressedBuffer;
mscab_decompressor* decompressionContext = nullptr;
private:
bool DecompressNextBuffer();
void ReadNextBufferFromDisk();
void ReadBufferFromDisk(std::vector<Byte>& buffer, Int& bufferTodo, Int& bufferSize);
};
}
#endif

View File

@ -24,7 +24,6 @@
#include "Windows.h"
#include <iostream>
#include "content/manager.hpp"
#include "content/decstream.hpp"
#include "platform/init-dx.hpp"
#include "csharp/type.hpp"