app_server: gcc4 build fixes
This commit is contained in:
parent
25dbf74b8e
commit
0a6baa7e74
@ -262,7 +262,7 @@ Painter::BitmapPainter::_ConvertColorSpace(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BBitmap* conversionBitmap = new(nothrow) BBitmap(fBitmapBounds,
|
BBitmap* conversionBitmap = new(std::nothrow) BBitmap(fBitmapBounds,
|
||||||
B_BITMAP_NO_SERVER_LINK, B_RGBA32);
|
B_BITMAP_NO_SERVER_LINK, B_RGBA32);
|
||||||
if (conversionBitmap == NULL) {
|
if (conversionBitmap == NULL) {
|
||||||
fprintf(stderr, "BitmapPainter::_ConvertColorSpace() - "
|
fprintf(stderr, "BitmapPainter::_ConvertColorSpace() - "
|
||||||
|
@ -238,41 +238,42 @@ struct BilinearDefault :
|
|||||||
// The last column/row handling does not need to be performed
|
// The last column/row handling does not need to be performed
|
||||||
// for all clipping rects!
|
// for all clipping rects!
|
||||||
int32 yMax = y2;
|
int32 yMax = y2;
|
||||||
if (fWeightsY[yMax].weight == 255)
|
if (this->fWeightsY[yMax].weight == 255)
|
||||||
yMax--;
|
yMax--;
|
||||||
int32 xIndexMax = xIndexR;
|
int32 xIndexMax = xIndexR;
|
||||||
if (fWeightsX[xIndexMax].weight == 255)
|
if (this->fWeightsX[xIndexMax].weight == 255)
|
||||||
xIndexMax--;
|
xIndexMax--;
|
||||||
|
|
||||||
for (; y1 <= yMax; y1++) {
|
for (; y1 <= yMax; y1++) {
|
||||||
// cache the weight of the top and bottom row
|
// cache the weight of the top and bottom row
|
||||||
const uint16 wTop = fWeightsY[y1].weight;
|
const uint16 wTop = this->fWeightsY[y1].weight;
|
||||||
const uint16 wBottom = 255 - fWeightsY[y1].weight;
|
const uint16 wBottom = 255 - this->fWeightsY[y1].weight;
|
||||||
|
|
||||||
// buffer offset into source (top row)
|
// buffer offset into source (top row)
|
||||||
register const uint8* src = fSource->row_ptr(fWeightsY[y1].index);
|
register const uint8* src = this->fSource->row_ptr(
|
||||||
|
this->fWeightsY[y1].index);
|
||||||
|
|
||||||
// buffer handle for destination to be incremented per
|
// buffer handle for destination to be incremented per
|
||||||
// pixel
|
// pixel
|
||||||
register uint8* d = fDestination;
|
register uint8* d = this->fDestination;
|
||||||
|
|
||||||
for (int32 x = xIndexL; x <= xIndexMax; x++) {
|
for (int32 x = xIndexL; x <= xIndexMax; x++) {
|
||||||
const uint8* s = src + fWeightsX[x].index;
|
const uint8* s = src + this->fWeightsX[x].index;
|
||||||
|
|
||||||
// calculate the weighted sum of all four
|
// calculate the weighted sum of all four
|
||||||
// interpolated pixels
|
// interpolated pixels
|
||||||
const uint16 wLeft = fWeightsX[x].weight;
|
const uint16 wLeft = this->fWeightsX[x].weight;
|
||||||
const uint16 wRight = 255 - wLeft;
|
const uint16 wRight = 255 - wLeft;
|
||||||
|
|
||||||
uint32 t[4];
|
uint32 t[4];
|
||||||
ColorType::Interpolate(&t[0], s, fSourceBytesPerRow,
|
ColorType::Interpolate(&t[0], s, this->fSourceBytesPerRow,
|
||||||
wLeft, wTop, wRight, wBottom);
|
wLeft, wTop, wRight, wBottom);
|
||||||
DrawMode::Blend(d, &t[0]);
|
DrawMode::Blend(d, &t[0]);
|
||||||
}
|
}
|
||||||
// last column of pixels if necessary
|
// last column of pixels if necessary
|
||||||
if (xIndexMax < xIndexR) {
|
if (xIndexMax < xIndexR) {
|
||||||
const uint8* s = src + fWeightsX[xIndexR].index;
|
const uint8* s = src + this->fWeightsX[xIndexR].index;
|
||||||
const uint8* sBottom = s + fSourceBytesPerRow;
|
const uint8* sBottom = s + this->fSourceBytesPerRow;
|
||||||
|
|
||||||
uint32 t[4];
|
uint32 t[4];
|
||||||
ColorType::InterpolateLastColumn(&t[0], s, sBottom, wTop,
|
ColorType::InterpolateLastColumn(&t[0], s, sBottom, wTop,
|
||||||
@ -280,20 +281,20 @@ struct BilinearDefault :
|
|||||||
DrawMode::Blend(d, &t[0]);
|
DrawMode::Blend(d, &t[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
fDestination += fDestinationBytesPerRow;
|
this->fDestination += this->fDestinationBytesPerRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
// last row of pixels if necessary
|
// last row of pixels if necessary
|
||||||
// buffer offset into source (bottom row)
|
// buffer offset into source (bottom row)
|
||||||
register const uint8* src
|
register const uint8* src
|
||||||
= fSource->row_ptr(fWeightsY[y2].index);
|
= this->fSource->row_ptr(this->fWeightsY[y2].index);
|
||||||
// buffer handle for destination to be incremented per pixel
|
// buffer handle for destination to be incremented per pixel
|
||||||
register uint8* d = fDestination;
|
register uint8* d = this->fDestination;
|
||||||
|
|
||||||
if (yMax < y2) {
|
if (yMax < y2) {
|
||||||
for (int32 x = xIndexL; x <= xIndexMax; x++) {
|
for (int32 x = xIndexL; x <= xIndexMax; x++) {
|
||||||
const uint8* s = src + fWeightsX[x].index;
|
const uint8* s = src + this->fWeightsX[x].index;
|
||||||
const uint16 wLeft = fWeightsX[x].weight;
|
const uint16 wLeft = this->fWeightsX[x].weight;
|
||||||
const uint16 wRight = 255 - wLeft;
|
const uint16 wRight = 255 - wLeft;
|
||||||
uint32 t[4];
|
uint32 t[4];
|
||||||
ColorType::InterpolateLastRow(&t[0], s, wLeft, wRight);
|
ColorType::InterpolateLastRow(&t[0], s, wLeft, wRight);
|
||||||
@ -303,7 +304,7 @@ struct BilinearDefault :
|
|||||||
|
|
||||||
// pixel in bottom right corner if necessary
|
// pixel in bottom right corner if necessary
|
||||||
if (yMax < y2 && xIndexMax < xIndexR) {
|
if (yMax < y2 && xIndexMax < xIndexR) {
|
||||||
const uint8* s = src + fWeightsX[xIndexR].index;
|
const uint8* s = src + this->fWeightsX[xIndexR].index;
|
||||||
*(uint32*)d = *(uint32*)s;
|
*(uint32*)d = *(uint32*)s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "IntPoint.h"
|
#include "IntPoint.h"
|
||||||
#include "IntRect.h"
|
#include "IntRect.h"
|
||||||
#include "Painter.h"
|
#include "Painter.h"
|
||||||
|
#include "SystemPalette.h"
|
||||||
|
|
||||||
|
|
||||||
template<class BlendType>
|
template<class BlendType>
|
||||||
|
Loading…
Reference in New Issue
Block a user