mirror of
https://github.com/borgesdan/xn65
synced 2024-12-29 21:54:47 +01:00
Remove DecompressStream
This commit is contained in:
parent
676df7e150
commit
dfa592ef5e
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
@ -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
|
@ -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"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user