From 70b82d1981c0de3c7b77670ff8abcfeb26815142 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 12 Mar 2019 00:39:26 +0800 Subject: *misc --- Source/Asura.Engine/Graphics/STBDecoder.cpp | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'Source/Asura.Engine/Graphics/STBDecoder.cpp') diff --git a/Source/Asura.Engine/Graphics/STBDecoder.cpp b/Source/Asura.Engine/Graphics/STBDecoder.cpp index d4d578f..b14d0f3 100644 --- a/Source/Asura.Engine/Graphics/STBDecoder.cpp +++ b/Source/Asura.Engine/Graphics/STBDecoder.cpp @@ -8,25 +8,21 @@ namespace AsuraEngine namespace Graphics { - bool STBDecoder::CanDecode(const Filesystem::DataBuffer* buffer) + bool STBDecoder::CanDecode(const Filesystem::DataBuffer& buffer) { int w = 0; int h = 0; int comp = 0; - int status = stbi_info_from_memory((const stbi_uc *)buffer->data, buffer->size, &w, &h, &comp); + int status = stbi_info_from_memory((const stbi_uc*)buffer.data, buffer.size, &w, &h, &comp); return status == 1 && w > 0 && h > 0; } - void STBDecoder::Decode(const Filesystem::DataBuffer* db, ImageData* imageData) + void STBDecoder::Decode(const Filesystem::DataBuffer& db, ImageData& imageData) { - if (!db) - throw Exception("Could not decode image with stb decoder because of null databuffer."); - if (!imageData) - throw Exception("Could not decode image with stb decoder because of null output image data."); - const stbi_uc *buffer = (const stbi_uc *)db->data; - int bufferlen = db->size; + const stbi_uc *buffer = (const stbi_uc *)db.data; + int bufferlen = db.size; int width, height; int comp = 0; byte* data = nullptr; @@ -49,12 +45,12 @@ namespace AsuraEngine if (data) { // 保证内存被释放,做一个防护,理论上不会出现没有释放的情况,因为image data是一次性的,image才是多次的。 - if (imageData->pixels) - delete[] imageData->pixels; - imageData->pixels = (byte*)data; - imageData->format = format; - imageData->width = width; - imageData->height = height; + if (imageData.pixels) + delete[] imageData.pixels; + imageData.pixels = (byte*)data; + imageData.format = format; + imageData.width = width; + imageData.height = height; } else { -- cgit v1.1-26-g67d0