Ejemplo n.º 1
0
void GlCanvas::OnSize( wxSizeEvent & event )
{
	wxClientDC deviceContext( this );
	wxGetApp().SetTargetGlCanvas( * this );

	m_pViewport->OnSize( event.GetSize().GetWidth(), event.GetSize().GetHeight() );
}
Ejemplo n.º 2
0
void CSaveIconView::ThreadProc()
{
	Framework::Win32::CClientDeviceContext deviceContext(m_hWnd);

	unsigned int nPixelFormat = ChoosePixelFormat(deviceContext, &m_PFD);
	SetPixelFormat(deviceContext, nPixelFormat, &m_PFD);
	m_hRC = wglCreateContext(deviceContext);
	wglMakeCurrent(deviceContext, m_hRC);

	glEnable(GL_TEXTURE_2D);
	glClearColor(1.0, 1.0, 1.0, 1.0);

	while(!m_threadOver)
	{
		while(m_mailBox.IsPending())
		{
			m_mailBox.ReceiveCall();
		}

		if(m_iconMesh)
		{
			m_iconMesh->Update(16.f / 1000.f);
		}
		Render(deviceContext);
		Sleep(16);
	}

	DELETEPTR(m_iconMesh);

	wglMakeCurrent(NULL, NULL);
	wglDeleteContext(m_hRC);
}
Ejemplo n.º 3
0
static SkCanvas* createAcceleratedCanvas(const IntSize& size, ImageBufferData* data, DeferralMode deferralMode)
{
    RefPtr<GraphicsContext3D> context3D = SharedGraphicsContext3D::get();
    if (!context3D)
        return 0;
    GrContext* gr = context3D->grContext();
    if (!gr)
        return 0;
    gr->resetContext();
    GrTextureDesc desc;
    desc.fFlags = kRenderTarget_GrTextureFlagBit;
    desc.fSampleCnt = 0;
    desc.fWidth = size.width();
    desc.fHeight = size.height();
    desc.fConfig = kSkia8888_PM_GrPixelConfig;
    SkAutoTUnref<GrTexture> texture(gr->createUncachedTexture(desc, 0, 0));
    if (!texture.get())
        return 0;
    SkCanvas* canvas;
    SkAutoTUnref<SkDevice> device(new SkGpuDevice(gr, texture.get()));
    if (deferralMode == Deferred) {
        SkAutoTUnref<AcceleratedDeviceContext> deviceContext(new AcceleratedDeviceContext(context3D.get()));
        canvas = new SkDeferredCanvas(device.get(), deviceContext.get());
    } else
        canvas = new SkCanvas(device.get());
    data->m_platformContext.setAccelerated(true);
#if USE(ACCELERATED_COMPOSITING)
    data->m_platformLayer = Canvas2DLayerChromium::create(context3D.release(), size);
    data->m_platformLayer->setTextureId(texture.get()->getTextureHandle());
    data->m_platformLayer->setCanvas(canvas);
#endif
    return canvas;
}
Ejemplo n.º 4
0
		virtual void Render(StyledWindow *window) const {
			wxAutoBufferedPaintDC deviceContext(window);
			auto g = std::unique_ptr<wxGraphicsContext>(wxGraphicsContext::Create(deviceContext));

			ClearBackground(window, g.get());

			DrawCheckbox(window, g.get());

			DrawText(window, g.get());
		}
Ejemplo n.º 5
0
SkCanvas* Canvas2DLayerBridge::skCanvas(SkDevice* device)
{
    if (m_deferralMode == Deferred) {
        SkAutoTUnref<AcceleratedDeviceContext> deviceContext(new AcceleratedDeviceContext(context(), m_layer, m_useDoubleBuffering));
        m_canvas = new SkDeferredCanvas(device, deviceContext.get());
    } else
        m_canvas = new SkCanvas(device);

    return m_canvas;
}
Ejemplo n.º 6
0
        virtual void Render(StyledWindow* window) const {
            wxAutoBufferedPaintDC deviceContext(window);

            auto textBox = static_cast<StyledTextBox*>(window);
            auto g = std::unique_ptr<wxGraphicsContext>(wxGraphicsContext::Create(deviceContext));

            auto context = g.get();

            DrawBackground(context, textBox);
            DrawSelection(context, textBox);
            DrawText(context, textBox);
            DrawCursor(context, textBox);
        }
Ejemplo n.º 7
0
void GlCanvas::OnFirstPaint( wxPaintEvent & event )
{
	Unbind( wxEVT_PAINT, & GlCanvas::OnFirstPaint, this );
	wxPaintDC deviceContext( this );

	wxGetApp().InitGlContext( * this );

	const wxSize clientSize = GetClientSize();
	m_pViewport.reset( new Viewport( clientSize.x, clientSize.y ) );

	Bind( wxEVT_SIZE, & GlCanvas::OnSize, this );
	Bind( wxEVT_PAINT, & GlCanvas::OnPaint, this );

	Render();
}
Ejemplo n.º 8
0
void GlCanvas::RenderImmediate()
{
	wxClientDC deviceContext( this );
	Render();
}
Ejemplo n.º 9
0
void GlCanvas::OnPaint( wxPaintEvent & event )
{
	wxPaintDC deviceContext( this );
	Render();
}