mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +00:00
Minor issues fixed
*Memory leak in image decodification modules. *Changed mouse wheel delta value.
This commit is contained in:
parent
1024a7c7c4
commit
b85d39bfc3
@ -127,7 +127,7 @@ public:
|
|||||||
{
|
{
|
||||||
CellMouseData& data = GetData(p);
|
CellMouseData& data = GetData(p);
|
||||||
data.update = CELL_MOUSE_DATA_UPDATE;
|
data.update = CELL_MOUSE_DATA_UPDATE;
|
||||||
data.wheel = rotation;
|
data.wheel = rotation/120; //120=event.GetWheelDelta()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -197,20 +197,19 @@ int cellGifDecDecodeData(u32 mainHandle, u32 subHandle, u32 data_addr, u32 dataC
|
|||||||
for(u32 i = 0; i < fileSize; i++){
|
for(u32 i = 0; i < fileSize; i++){
|
||||||
gif[i] = Memory.Read8(buffer+i);
|
gif[i] = Memory.Read8(buffer+i);
|
||||||
}
|
}
|
||||||
|
Memory.Free(buffer);
|
||||||
|
|
||||||
unsigned char *image = stbi_load_from_memory((const unsigned char*)gif, fileSize, &width, &height, &actual_components, 4);
|
unsigned char *image = stbi_load_from_memory((const unsigned char*)gif, fileSize, &width, &height, &actual_components, 4);
|
||||||
if (!image)
|
delete[] gif;
|
||||||
{
|
if (!image) return CELL_GIFDEC_ERROR_STREAM_FORMAT;
|
||||||
Memory.Free(buffer);
|
|
||||||
return CELL_GIFDEC_ERROR_STREAM_FORMAT;
|
|
||||||
}
|
|
||||||
u32 image_size = width * height * 4;
|
u32 image_size = width * height * 4;
|
||||||
if (inParam.colorSpace == CELL_GIFDEC_RGBA){
|
if (inParam.colorSpace == CELL_GIFDEC_RGBA){
|
||||||
for(u32 i = 0; i < image_size; i+=4){
|
for(u32 i = 0; i < image_size; i+=4){
|
||||||
Memory.Write8(data_addr+i+0, image[i+0]);
|
Memory.Write8(data_addr+i+0, image[i+0]);
|
||||||
Memory.Write8(data_addr+i+1, image[i+1]);
|
Memory.Write8(data_addr+i+1, image[i+1]);
|
||||||
Memory.Write8(data_addr+i+2, image[i+2]);
|
Memory.Write8(data_addr+i+2, image[i+2]);
|
||||||
Memory.Write8(data_addr+i+3, image[i+3]); // (This can be optimized by using Write32)
|
Memory.Write8(data_addr+i+3, image[i+3]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inParam.colorSpace == CELL_GIFDEC_ARGB){
|
if (inParam.colorSpace == CELL_GIFDEC_ARGB){
|
||||||
@ -221,7 +220,7 @@ int cellGifDecDecodeData(u32 mainHandle, u32 subHandle, u32 data_addr, u32 dataC
|
|||||||
Memory.Write8(data_addr+i+3, image[i+2]);
|
Memory.Write8(data_addr+i+3, image[i+2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Memory.Free(buffer);
|
delete[] image;
|
||||||
|
|
||||||
//The output data is an image (dataOutInfo.recordType = 1)
|
//The output data is an image (dataOutInfo.recordType = 1)
|
||||||
Memory.Write32(dataOutInfo_addr, 1);
|
Memory.Write32(dataOutInfo_addr, 1);
|
||||||
|
@ -217,13 +217,12 @@ int cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, u32 data_addr, u32 dataC
|
|||||||
for(u32 i = 0; i < fileSize; i++){
|
for(u32 i = 0; i < fileSize; i++){
|
||||||
jpg[i] = Memory.Read8(buffer+i);
|
jpg[i] = Memory.Read8(buffer+i);
|
||||||
}
|
}
|
||||||
|
Memory.Free(buffer);
|
||||||
|
|
||||||
unsigned char *image = stbi_load_from_memory((const unsigned char*)jpg, fileSize, &width, &height, &actual_components, 4);
|
unsigned char *image = stbi_load_from_memory((const unsigned char*)jpg, fileSize, &width, &height, &actual_components, 4);
|
||||||
if (!image)
|
delete[] jpg;
|
||||||
{
|
if (!image) return CELL_JPGDEC_ERROR_STREAM_FORMAT;
|
||||||
Memory.Free(buffer);
|
|
||||||
return CELL_JPGDEC_ERROR_STREAM_FORMAT;
|
|
||||||
}
|
|
||||||
u32 image_size = width * height * 4;
|
u32 image_size = width * height * 4;
|
||||||
if (inParam.outputColorSpace == CELL_JPG_RGBA){
|
if (inParam.outputColorSpace == CELL_JPG_RGBA){
|
||||||
for(u32 i = 0; i < image_size; i+=4){
|
for(u32 i = 0; i < image_size; i+=4){
|
||||||
@ -241,7 +240,7 @@ int cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, u32 data_addr, u32 dataC
|
|||||||
Memory.Write8(data_addr+i+3, image[i+2]);
|
Memory.Write8(data_addr+i+3, image[i+2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Memory.Free(buffer);
|
delete[] image;
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
@ -202,13 +202,12 @@ int cellPngDecDecodeData(u32 mainHandle, u32 subHandle, u32 data_addr, u32 dataC
|
|||||||
for(u32 i = 0; i < fileSize; i++){
|
for(u32 i = 0; i < fileSize; i++){
|
||||||
png[i] = Memory.Read8(buffer+i);
|
png[i] = Memory.Read8(buffer+i);
|
||||||
}
|
}
|
||||||
|
Memory.Free(buffer);
|
||||||
|
|
||||||
unsigned char *image = stbi_load_from_memory((const unsigned char*)png, fileSize, &width, &height, &actual_components, 4);
|
unsigned char *image = stbi_load_from_memory((const unsigned char*)png, fileSize, &width, &height, &actual_components, 4);
|
||||||
if (!image)
|
delete[] png;
|
||||||
{
|
if (!image) return CELL_PNGDEC_ERROR_STREAM_FORMAT;
|
||||||
Memory.Free(buffer);
|
|
||||||
return CELL_PNGDEC_ERROR_STREAM_FORMAT;
|
|
||||||
}
|
|
||||||
u32 image_size = width * height * 4;
|
u32 image_size = width * height * 4;
|
||||||
if (inParam.outputColorSpace == CELL_PNGDEC_RGBA){
|
if (inParam.outputColorSpace == CELL_PNGDEC_RGBA){
|
||||||
for(u32 i = 0; i < image_size; i+=4){
|
for(u32 i = 0; i < image_size; i+=4){
|
||||||
@ -226,7 +225,7 @@ int cellPngDecDecodeData(u32 mainHandle, u32 subHandle, u32 data_addr, u32 dataC
|
|||||||
Memory.Write8(data_addr+i+3, image[i+2]);
|
Memory.Write8(data_addr+i+3, image[i+2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Memory.Free(buffer);
|
delete[] image;
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user