前田稔(Maeda Minoru)の超初心者のプログラム入門
PhotoRenderer::PhotoRenderer() : // Initialize defaults for the transformation variables. m_viewPosition(), m_zoom(1.0f), m_minZoom(1.0f), // Min zoom is dynamically calculated m_thumbnailPixelSize(), m_thumbnailSize(), m_imagePixelSize(), m_imageSize(), m_contextSize(), m_isWindowClosed(false), m_renderingMode(RenderingMode::WaitForEvents), m_recenterStartZoom(), m_recenterStartPosition(), m_imageLoaded(false) { m_timer = ref new BasicTimer(); } |
void PhotoRenderer::Run() { Render(); while (!m_isWindowClosed) { switch (m_renderingMode) { case RenderingMode::WaitForEvents: m_window->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); break; case RenderingMode::RunRecenterAnimation: m_window->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); UpdateRecenterAnimation(); Render(); break; } } } |
void PhotoRenderer::Render() { m_d2dContext->BeginDraw(); m_d2dContext->DrawImage( m_2dTransformEffect.Get(), D2D1_INTERPOLATION_MODE_LINEAR, D2D1_COMPOSITE_MODE_SOURCE_COPY ); HRESULT hr = m_d2dContext->EndDraw(); if (hr != D2DERR_RECREATE_TARGET) { DX::ThrowIfFailed(hr); } m_sampleOverlay->Render(); Present(); } |
void PhotoRenderer::CreateBackgroundDeviceResources() { ・・・ auto backgroundTask = task |
void PhotoRenderer::BackgroundProcessing() { ComPtr |