Use viewport instead of width/height.
PiperOrigin-RevId: 911942457 Change-Id: I2d6d52a8bb6b1b10d69956cce9e5d7f62e7d1f1c
This commit is contained in:
committed by
Copybara-Service
parent
ec50260e26
commit
d5c5a989f2
@@ -54,15 +54,13 @@ void MjrFilamentRenderer::Render(const mjrRect& viewport,
|
|||||||
reqs[0].scene = scene_bridge_->GetScene();
|
reqs[0].scene = scene_bridge_->GetScene();
|
||||||
reqs[0].draw_mode = scene_bridge_->GetDrawMode();
|
reqs[0].draw_mode = scene_bridge_->GetDrawMode();
|
||||||
reqs[0].camera = scene_bridge_->GetCamera();
|
reqs[0].camera = scene_bridge_->GetCamera();
|
||||||
reqs[0].width = viewport.width;
|
reqs[0].viewport = viewport;
|
||||||
reqs[0].height = viewport.height;
|
|
||||||
|
|
||||||
mjr_defaultRenderRequest(&reqs[1]);
|
mjr_defaultRenderRequest(&reqs[1]);
|
||||||
reqs[1].scene = imgui_bridge_->GetScene();
|
reqs[1].scene = imgui_bridge_->GetScene();
|
||||||
reqs[1].draw_mode = mjDRAW_MODE_COLOR;
|
reqs[1].draw_mode = mjDRAW_MODE_COLOR;
|
||||||
reqs[1].camera = imgui_bridge_->GetCamera(viewport.width, viewport.height);
|
reqs[1].camera = imgui_bridge_->GetCamera(viewport.width, viewport.height);
|
||||||
reqs[1].width = viewport.width;
|
reqs[1].viewport = viewport;
|
||||||
reqs[1].height = viewport.height;
|
|
||||||
filament_context_->Render(reqs);
|
filament_context_->Render(reqs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -95,15 +93,13 @@ void MjrFilamentRenderer::ReadPixels(mjrRect viewport, unsigned char* rgb,
|
|||||||
reqs[0].scene = scene_bridge_->GetScene();
|
reqs[0].scene = scene_bridge_->GetScene();
|
||||||
reqs[0].draw_mode = scene_bridge_->GetDrawMode();
|
reqs[0].draw_mode = scene_bridge_->GetDrawMode();
|
||||||
reqs[0].camera = scene_bridge_->GetCamera();
|
reqs[0].camera = scene_bridge_->GetCamera();
|
||||||
reqs[0].width = viewport.width;
|
reqs[0].viewport = viewport;
|
||||||
reqs[0].height = viewport.height;
|
|
||||||
|
|
||||||
mjr_defaultRenderRequest(&reqs[1]);
|
mjr_defaultRenderRequest(&reqs[1]);
|
||||||
reqs[1].scene = imgui_bridge_->GetScene();
|
reqs[1].scene = imgui_bridge_->GetScene();
|
||||||
reqs[1].draw_mode = mjDRAW_MODE_COLOR;
|
reqs[1].draw_mode = mjDRAW_MODE_COLOR;
|
||||||
reqs[1].camera = imgui_bridge_->GetCamera(viewport.width, viewport.height);
|
reqs[1].camera = imgui_bridge_->GetCamera(viewport.width, viewport.height);
|
||||||
reqs[1].width = viewport.width;
|
reqs[1].viewport = viewport;
|
||||||
reqs[1].height = viewport.height;
|
|
||||||
|
|
||||||
if (rgb) {
|
if (rgb) {
|
||||||
mjrRenderTargetConfig config;
|
mjrRenderTargetConfig config;
|
||||||
|
|||||||
@@ -110,13 +110,14 @@ mjrFrameHandle FilamentContext::Render(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If the window size has changed, we need to reacquire the swap chain.
|
// If the window size has changed, we need to reacquire the swap chain.
|
||||||
if (request.width != window_width_ || request.height != window_height_) {
|
if (request.viewport.width != window_width_ ||
|
||||||
|
request.viewport.height != window_height_) {
|
||||||
if (window_width_ != 0 && window_height_ != 0) {
|
if (window_width_ != 0 && window_height_ != 0) {
|
||||||
engine_->destroy(window_swap_chain_);
|
engine_->destroy(window_swap_chain_);
|
||||||
window_swap_chain_ = engine_->createSwapChain(config_.native_window);
|
window_swap_chain_ = engine_->createSwapChain(config_.native_window);
|
||||||
}
|
}
|
||||||
window_width_ = request.width;
|
window_width_ = request.viewport.width;
|
||||||
window_height_ = request.height;
|
window_height_ = request.viewport.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!render_began) {
|
if (!render_began) {
|
||||||
|
|||||||
@@ -486,7 +486,7 @@ void SceneView::Configure(const mjModel* model) {
|
|||||||
void DoRender(filament::Renderer* renderer, const mjrRenderRequest& request) {
|
void DoRender(filament::Renderer* renderer, const mjrRenderRequest& request) {
|
||||||
SceneView::RenderRequest scene_view_request;
|
SceneView::RenderRequest scene_view_request;
|
||||||
scene_view_request.draw_mode = request.draw_mode;
|
scene_view_request.draw_mode = request.draw_mode;
|
||||||
scene_view_request.viewport = {0, 0, request.width, request.height};
|
scene_view_request.viewport = request.viewport;
|
||||||
scene_view_request.camera = request.camera;
|
scene_view_request.camera = request.camera;
|
||||||
SceneView* scene_view = SceneView::downcast(request.scene);
|
SceneView* scene_view = SceneView::downcast(request.scene);
|
||||||
scene_view->Render(renderer, scene_view_request);
|
scene_view->Render(renderer, scene_view_request);
|
||||||
@@ -499,7 +499,7 @@ void DoReadPixels(filament::Renderer* renderer,
|
|||||||
|
|
||||||
SceneView::RenderRequest scene_view_request;
|
SceneView::RenderRequest scene_view_request;
|
||||||
scene_view_request.draw_mode = request.draw_mode;
|
scene_view_request.draw_mode = request.draw_mode;
|
||||||
scene_view_request.viewport = {0, 0, request.width, request.height};
|
scene_view_request.viewport = request.viewport;
|
||||||
scene_view_request.camera = request.camera;
|
scene_view_request.camera = request.camera;
|
||||||
scene_view_request.target = render_target;
|
scene_view_request.target = render_target;
|
||||||
SceneView* scene_view = SceneView::downcast(request.scene);
|
SceneView* scene_view = SceneView::downcast(request.scene);
|
||||||
|
|||||||
@@ -370,9 +370,8 @@ struct mjrRenderRequest {
|
|||||||
// The camera from which to render the scene.
|
// The camera from which to render the scene.
|
||||||
mjrCamera camera;
|
mjrCamera camera;
|
||||||
|
|
||||||
// The dimensions of the output image.
|
// The viewport into which to render the image.
|
||||||
int width;
|
mjrRect viewport;
|
||||||
int height;
|
|
||||||
|
|
||||||
// The render target into which to render the image. If nullptr, the image
|
// The render target into which to render the image. If nullptr, the image
|
||||||
// will be rendered to the window (as previously configured in
|
// will be rendered to the window (as previously configured in
|
||||||
|
|||||||
Reference in New Issue
Block a user