tuned VIA overlay buffer pitch/width granularity constraints: VIA handles downto 8 pixels (checked on CLE266)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14275 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
/* Written by Rudolf Cornelissen 05/2002-9/2004 */
|
/* Written by Rudolf Cornelissen 05/2002-9/2005 */
|
||||||
|
|
||||||
/* Note on 'missing features' in BeOS 5.0.3 and DANO:
|
/* Note on 'missing features' in BeOS 5.0.3 and DANO:
|
||||||
* BeOS needs to define more colorspaces! It would be nice if BeOS would support the FourCC 'definitions'
|
* BeOS needs to define more colorspaces! It would be nice if BeOS would support the FourCC 'definitions'
|
||||||
@@ -95,12 +95,12 @@ const overlay_buffer *ALLOCATE_OVERLAY_BUFFER(color_space cs, uint16 width, uint
|
|||||||
switch (cs)
|
switch (cs)
|
||||||
{
|
{
|
||||||
case B_YCbCr422:
|
case B_YCbCr422:
|
||||||
/* check if slopspace is needed: RIVA128 and TNT need ~0x000f. */
|
/* check if slopspace is needed: VIA CLE266 needs ~0x0007. */
|
||||||
si->overlay.myBuffer[offset].width = ((width + 0x000f) & ~0x000f);
|
si->overlay.myBuffer[offset].width = ((width + 0x0007) & ~0x0007);
|
||||||
si->overlay.myBuffer[offset].bytes_per_row = 2 * si->overlay.myBuffer[offset].width;
|
si->overlay.myBuffer[offset].bytes_per_row = 2 * si->overlay.myBuffer[offset].width;
|
||||||
|
|
||||||
/* check if the requested horizontal pitch is supported: */
|
/* check if the requested horizontal pitch is supported: */
|
||||||
//fixme: tune for GF and TNT...
|
//fixme: tune for VIA... (overruled below, this should probably be a bytes_per_row check)
|
||||||
if (si->overlay.myBuffer[offset].width > 4088)
|
if (si->overlay.myBuffer[offset].width > 4088)
|
||||||
{
|
{
|
||||||
LOG(4,("Overlay: Sorry, requested buffer pitch not supported, aborted\n"));
|
LOG(4,("Overlay: Sorry, requested buffer pitch not supported, aborted\n"));
|
||||||
@@ -377,11 +377,11 @@ status_t GET_OVERLAY_CONSTRAINTS
|
|||||||
{
|
{
|
||||||
case B_YCbCr422:
|
case B_YCbCr422:
|
||||||
/* Note: this has to be in sync with the slopspace setup during buffer allocation.. */
|
/* Note: this has to be in sync with the slopspace setup during buffer allocation.. */
|
||||||
oc->view.width_alignment = 15;
|
oc->view.width_alignment = 7;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* we should not be here, but set the worst-case value just to be safe anyway */
|
/* we should not be here, but set the worst-case value just to be safe anyway */
|
||||||
oc->view.width_alignment = 15;
|
oc->view.width_alignment = 7;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user