diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2008-11-04 15:04:59 +0300 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2008-11-04 15:04:59 +0300 |
commit | 1886b7bf52f73f03d60967504b474cdde7a4e1e7 (patch) | |
tree | 688163d0a7fc0330c6438ff9be890f8b2e7ed8d1 /source/gameengine/VideoTexture/FilterColor.cpp | |
parent | 6eb3bf53dd753d4b00f0f76f9f7739aecb9af2f8 (diff) |
VideoTexture: fix RGB/BGR confusion, make code compatible with big endian CPU, add RGBA source filter.
Diffstat (limited to 'source/gameengine/VideoTexture/FilterColor.cpp')
-rw-r--r-- | source/gameengine/VideoTexture/FilterColor.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/gameengine/VideoTexture/FilterColor.cpp b/source/gameengine/VideoTexture/FilterColor.cpp index eaf6e955003..22ee729b200 100644 --- a/source/gameengine/VideoTexture/FilterColor.cpp +++ b/source/gameengine/VideoTexture/FilterColor.cpp @@ -223,7 +223,7 @@ FilterLevel::FilterLevel (void) for (int r = 0; r < 4; ++r) { levels[r][0] = 0; - levels[r][1] = 0xFF << (r << 3); + levels[r][1] = 0xFF; levels[r][2] = 0xFF; } } @@ -235,7 +235,7 @@ void FilterLevel::setLevels (ColorLevel & lev) for (int r = 0; r < 4; ++r) { for (int c = 0; c < 2; ++c) - levels[r][c] = lev[r][c] << (r << 3); + levels[r][c] = lev[r][c]; levels[r][2] = lev[r][0] < lev[r][1] ? lev[r][1] - lev[r][0] : 1; } } @@ -252,9 +252,9 @@ inline FilterLevel * getFilterLevel (PyFilter * self) static PyObject * getLevels (PyFilter * self, void * closure) { ColorLevel & lev = getFilterLevel(self)->getLevels(); - return Py_BuildValue("((kk)(kk)(kk)(kk))", - lev[0][0], lev[0][1], lev[1][0] >> 8, lev[1][1] >> 8, - lev[2][0] >> 16, lev[2][1] >> 16, lev[3][0] >> 24, lev[3][1] >> 24); + return Py_BuildValue("((HH)(HH)(HH)(HH))", + lev[0][0], lev[0][1], lev[1][0], lev[1][1], + lev[2][0], lev[2][1], lev[3][0], lev[3][1]); } // set color levels @@ -279,7 +279,7 @@ static int setLevels (PyFilter * self, PyObject * value, void * closure) valid = PyInt_Check(PySequence_Fast_GET_ITEM(row, c)); // if it is valid, save it in matrix if (valid) - lev[r][c] = (unsigned long)(PyInt_AsLong(PySequence_Fast_GET_ITEM(row, c))); + lev[r][c] = (unsigned short)(PyInt_AsLong(PySequence_Fast_GET_ITEM(row, c))); } } // if parameter is not valid, report error |