[host] DXGI: initial implementation of RGB24 support

This commit breaks damage tracking and the dx12 backend and is not in
a state where it should be used by the general public.
This commit is contained in:
Geoffrey McRae
2023-10-30 08:42:08 +11:00
parent b3879ff1d7
commit 578d98fd22
16 changed files with 559 additions and 232 deletions

View File

@@ -250,8 +250,13 @@ static bool sendFrame(void)
switch(frame.format)
{
case CAPTURE_FMT_BGRA : fi->type = FRAME_TYPE_BGRA ; break;
case CAPTURE_FMT_RGBA : fi->type = FRAME_TYPE_RGBA ; break;
case CAPTURE_FMT_BGRA:
fi->type = FRAME_TYPE_BGRA;
break;
case CAPTURE_FMT_RGBA:
fi->type = FRAME_TYPE_RGBA;
break;
case CAPTURE_FMT_RGBA10:
fi->type = FRAME_TYPE_RGBA10;
@@ -262,6 +267,10 @@ static bool sendFrame(void)
flags |= FRAME_FLAG_HDR;
break;
case CAPTURE_FMT_BGR:
fi->type = FRAME_TYPE_BGR;
break;
default:
DEBUG_ERROR("Unsupported frame format %d, skipping frame", frame.format);
return true;
@@ -292,6 +301,8 @@ static bool sendFrame(void)
fi->frameSerial = app.frameSerial++;
fi->screenWidth = frame.screenWidth;
fi->screenHeight = frame.screenHeight;
fi->dataWidth = frame.dataWidth;
fi->dataHeight = frame.dataHeight;
fi->frameWidth = frame.frameWidth;
fi->frameHeight = frame.frameHeight;
fi->stride = frame.stride;
@@ -317,7 +328,7 @@ static bool sendFrame(void)
return true;
}
app.iface->getFrame(fb, frame.frameHeight, app.frameIndex);
app.iface->getFrame(fb, app.frameIndex);
return true;
}