mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 10:33:10 +02:00
dk2 snapshot takes picture of HMD window
This commit is contained in:
parent
f3c5324e5c
commit
335ed667bb
2 changed files with 16 additions and 0 deletions
|
@ -38,6 +38,20 @@ QRect HmdDisplayPlugin::getRecommendedOverlayRect() const {
|
|||
return CompositorHelper::VIRTUAL_SCREEN_RECOMMENDED_OVERLAY_RECT;
|
||||
}
|
||||
|
||||
QImage HmdDisplayPlugin::getScreenshot() const {
|
||||
using namespace oglplus;
|
||||
QImage screenshot(_compositeFramebuffer->size.x, _compositeFramebuffer->size.y, QImage::Format_RGBA8888);
|
||||
auto windowSize = toGlm(_container->getPrimaryWidget()->size());
|
||||
_compositeFramebuffer->Bound(Framebuffer::Target::Read, [&] {
|
||||
Context::BlitFramebuffer(
|
||||
0, 0, _compositeFramebuffer->size.x, _compositeFramebuffer->size.y,
|
||||
0, 0, windowSize.x, windowSize.y,
|
||||
BufferSelectBit::ColorBuffer, BlitFilter::Nearest);
|
||||
Context::ReadPixels(0, 0, _compositeFramebuffer->size.x, _compositeFramebuffer->size.y, enums::PixelDataFormat::RGBA, enums::PixelDataType::UnsignedByte, screenshot.bits());
|
||||
});
|
||||
return screenshot.mirrored(false, true);
|
||||
}
|
||||
|
||||
bool HmdDisplayPlugin::internalActivate() {
|
||||
_monoPreview = _container->getBoolSetting("monoPreview", DEFAULT_MONO_VIEW);
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@ public:
|
|||
void setEyeRenderPose(uint32_t frameIndex, Eye eye, const glm::mat4& pose) override final;
|
||||
bool isDisplayVisible() const override { return isHmdMounted(); }
|
||||
|
||||
QImage getScreenshot() const override;
|
||||
|
||||
QRect getRecommendedOverlayRect() const override final;
|
||||
|
||||
virtual glm::mat4 getHeadPose() const override;
|
||||
|
|
Loading…
Reference in a new issue