void DisplayRenderTargetChain::Clear(const UInt _uClearColor) { //EnableAllRenderTargets(); RenderBegin(DisplayRenderTarget::ERenderMode_NORMALPROCESS); RenderBeginPass(0); m_rDisplay.GetDevicePtr()->Clear(0L, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, _uClearColor, 1.0f, 0L); RenderEndPass(); RenderEnd(); }
void TextRenderer::RenderWithFunctor(DrwFunctor drw_fnr, const Rect& drw_rct, const Rect& obj_rct) { Rect rct = Intersection(drw_rct, obj_rct); if( !rct.IsNull() ) { CairoStateSave save(caiCont); RenderBegin(rct); drw_fnr(); RenderEnd(rct); } }
void Render(float dt) { static unsigned int frameIndex = 0; frameIndex++; ovrFrameTiming timing = ovrHmd_BeginFrame(s_hmd, 0); // ovrSensorState ss = ovrHmd_GetSensorState(s_hmd, timing.ScanoutMidpointSeconds); // TODO: Use this for head tracking... // TODO: Use player height from SDK glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); // render into fbo glBindFramebuffer(GL_FRAMEBUFFER, s_fbo); // TODO: enable this when we have more complex rendering. glEnable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); static float t = 0.0; t += dt; // clear render target glViewport(0, 0, s_renderTargetSize.w, s_renderTargetSize.h); glClearColor(s_clearColor.x, s_clearColor.y, s_clearColor.z, s_clearColor.w); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); for (int i = 0; i < 2; i++) { ovrEyeType eye = s_hmdDesc.EyeRenderOrder[i]; ovrPosef pose = ovrHmd_BeginEyeRender(s_hmd, eye); glViewport(s_eyeTexture[eye].Header.RenderViewport.Pos.x, s_eyeTexture[eye].Header.RenderViewport.Pos.y, s_eyeTexture[eye].Header.RenderViewport.Size.w, s_eyeTexture[eye].Header.RenderViewport.Size.h); Quatf q(pose.Orientation.x, pose.Orientation.y, pose.Orientation.z, pose.Orientation.w); Vector3f p(pose.Position.x, pose.Position.y, pose.Position.z); Matrixf cameraMatrix = Matrixf::QuatTrans(q, s_cameraPos); Matrixf viewCenter = cameraMatrix.OrthoInverse(); // let ovr compute projection matrix, cause it's hard. ovrMatrix4f ovrProj = ovrMatrix4f_Projection(s_eyeRenderDesc[eye].Fov, 0.1f, 10000.0f, true); // convert to abaci matrix Matrixf projMatrix = Matrixf::Rows(Vector4f(ovrProj.M[0][0], ovrProj.M[0][1], ovrProj.M[0][2], ovrProj.M[0][3]), Vector4f(ovrProj.M[1][0], ovrProj.M[1][1], ovrProj.M[1][2], ovrProj.M[1][3]), Vector4f(ovrProj.M[2][0], ovrProj.M[2][1], ovrProj.M[2][2], ovrProj.M[2][3]), Vector4f(ovrProj.M[3][0], ovrProj.M[3][1], ovrProj.M[3][2], ovrProj.M[3][3])); // use EyeRenderDesc.ViewAdjust to do eye offset. Matrixf viewMatrix = viewCenter * Matrixf::Trans(Vector3f(s_eyeRenderDesc[eye].ViewAdjust.x, s_eyeRenderDesc[eye].ViewAdjust.y, s_eyeRenderDesc[eye].ViewAdjust.z)); // compute model matrix for terminal const float kTermScale = 0.001f; const Vector3f termOrigin(-2 * kFeetToMeters, 6.75f * kFeetToMeters, -2.5 * kFeetToMeters); Matrixf modelMatrix = Matrixf::ScaleQuatTrans(Vector3f(kTermScale, -kTermScale, kTermScale), Quatf::AxisAngle(Vector3f(0, 1, 0), 0), termOrigin); RenderBegin(); RenderFloor(projMatrix, viewMatrix, 0.0f); RenderTextBegin(projMatrix, viewMatrix, modelMatrix); for (int j = 0; j < win_get_text_count(); j++) { gb::Text* text = (gb::Text*)win_get_text(j); if (text) { RenderText(text->GetQuadVec()); } } RenderTextEnd(); RenderEnd(); ovrHmd_EndEyeRender(s_hmd, eye, pose, &s_eyeTexture[eye]); } ovrHmd_EndFrame(s_hmd); }
void RenderPass::RenderBegin(int iFrameBuffer, bool bClear) { UseFrameBuffer(iFrameBuffer); RenderBegin(m_pCurFrameBuffer.get(), bClear); }
QFilmWidget::QFilmWidget(QWidget* pParent) : QGroupBox(pParent), m_GridLayout(), m_PresetType(), m_PresetsLayout(), m_WidthSpinner(), m_HeightSpinner(), m_ExposureSlider(), m_ExposureSpinner(), m_NoiseReduction() { setTitle("Film"); setStatusTip("Film properties"); setToolTip("Film properties"); // Create grid layout m_GridLayout.setColumnMinimumWidth(0, 75); setLayout(&m_GridLayout); m_PresetType.addItem("NTSC D-1 (video)"); m_PresetType.addItem("NTSC DV (video)"); m_PresetType.addItem("PAL (video)"); m_PresetType.addItem("PAL D-1 (video)"); m_PresetType.addItem("HDTV (video)"); m_GridLayout.addWidget(new QLabel("Type"), 0, 0); m_GridLayout.addWidget(&m_PresetType, 0, 1); m_GridLayout.addLayout(&m_PresetsLayout, 1, 2, 2, 1); m_PresetsLayout.addWidget(&m_Preset[0], 0, 1); m_PresetsLayout.addWidget(&m_Preset[1], 0, 2); m_PresetsLayout.addWidget(&m_Preset[2], 1, 1); m_PresetsLayout.addWidget(&m_Preset[3], 1, 2); QObject::connect(&m_PresetType, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(SetPresetType(const QString&))); QObject::connect(&m_Preset[0], SIGNAL(SetPreset(QFilmResolutionPreset&)), this, SLOT(SetPreset(QFilmResolutionPreset&))); QObject::connect(&m_Preset[1], SIGNAL(SetPreset(QFilmResolutionPreset&)), this, SLOT(SetPreset(QFilmResolutionPreset&))); QObject::connect(&m_Preset[2], SIGNAL(SetPreset(QFilmResolutionPreset&)), this, SLOT(SetPreset(QFilmResolutionPreset&))); QObject::connect(&m_Preset[3], SIGNAL(SetPreset(QFilmResolutionPreset&)), this, SLOT(SetPreset(QFilmResolutionPreset&))); m_PresetType.setCurrentIndex(4); const int ResMin = powf(2.0f, 5); const int ResMax = powf(2.0f, 11); // Film width m_GridLayout.addWidget(new QLabel("Film width"), 1, 0); m_WidthSpinner.setRange(ResMin, ResMax); m_GridLayout.addWidget(&m_WidthSpinner, 1, 1); QObject::connect(&m_WidthSpinner, SIGNAL(valueChanged(int)), this, SLOT(SetWidth(int))); QPushButton B; // Film height m_GridLayout.addWidget(new QLabel("Film height"), 2, 0); m_HeightSpinner.setRange(ResMin, ResMax); m_GridLayout.addWidget(&m_HeightSpinner, 2, 1); QObject::connect(&m_HeightSpinner, SIGNAL(valueChanged(int)), this, SLOT(SetHeight(int))); // Exposure m_GridLayout.addWidget(new QLabel("Exposure"), 3, 0); m_ExposureSlider.setOrientation(Qt::Horizontal); m_ExposureSlider.setRange(0.0f, 1.0f); m_GridLayout.addWidget(&m_ExposureSlider, 3, 1); m_ExposureSpinner.setRange(0.0f, 1.0f); m_GridLayout.addWidget(&m_ExposureSpinner, 3, 2); QObject::connect(&m_ExposureSlider, SIGNAL(valueChanged(double)), &m_ExposureSpinner, SLOT(setValue(double))); QObject::connect(&m_ExposureSlider, SIGNAL(valueChanged(double)), this, SLOT(SetExposure(double))); QObject::connect(&m_ExposureSpinner, SIGNAL(valueChanged(double)), &m_ExposureSlider, SLOT(setValue(double))); gStatus.SetStatisticChanged("Camera", "Film", "", "", ""); m_NoiseReduction.setText("Noise Reduction"); m_GridLayout.addWidget(&m_NoiseReduction, 4, 1); QObject::connect(&m_NoiseReduction, SIGNAL(stateChanged(const int&)), this, SLOT(OnNoiseReduction(const int&))); QObject::connect(&gStatus, SIGNAL(RenderBegin()), this, SLOT(OnRenderBegin())); QObject::connect(&gStatus, SIGNAL(RenderEnd()), this, SLOT(OnRenderEnd())); QObject::connect(&gCamera.GetFilm(), SIGNAL(Changed(const QFilm&)), this, SLOT(OnFilmChanged(const QFilm&))); }