示例#1
0
    //------------------------------------------------------------------------
    void platform_specific::display_pmap(HDC dc, const rendering_buffer* src)
    {
        if(m_sys_format == m_format)
        {
            m_pmap_window.draw(dc);
        }
        else
        {
            pixel_map pmap_tmp;
            pmap_tmp.create(m_pmap_window.width(), 
                            m_pmap_window.height(),
                            org_e(m_sys_bpp));

            rendering_buffer rbuf_tmp;
            rbuf_tmp.attach(pmap_tmp.buf(),
                            pmap_tmp.width(),
                            pmap_tmp.height(),
                            m_flip_y ?
                              pmap_tmp.stride() :
                             -pmap_tmp.stride());

            convert_pmap(&rbuf_tmp, src, m_format);
            pmap_tmp.draw(dc);
        }
    }
 //------------------------------------------------------------------------
 void platform_specific::create_pmap(unsigned width, 
                                     unsigned height,
                                     rendering_buffer* wnd)
 {
     m_pmap_window.create(width, height, org_e(m_bpp));
     wnd->attach(m_pmap_window.buf(), 
                 m_pmap_window.width(),
                 m_pmap_window.height(),
                   m_flip_y ?
                  -m_pmap_window.row_bytes() :
                   m_pmap_window.row_bytes());
 }
    //------------------------------------------------------------------------
    void platform_specific::display_pmap(WindowRef window, const rendering_buffer* src)
    {
        if(m_sys_format == m_format)
        {
            m_pmap_window.draw(window);
        }
        else
        {
            pixel_map pmap_tmp;
            pmap_tmp.create(m_pmap_window.width(), 
                            m_pmap_window.height(),
                            org_e(m_sys_bpp));

            rendering_buffer rbuf_tmp;
            rbuf_tmp.attach(pmap_tmp.buf(),
                            pmap_tmp.width(),
                            pmap_tmp.height(),
                            m_flip_y ?
                             -pmap_tmp.row_bytes() :
                              pmap_tmp.row_bytes());

            switch(m_format)
            {
            case pix_format_gray8:
                return;

            case pix_format_rgb565:
                color_conv(&rbuf_tmp, src, color_conv_rgb565_to_rgb555());
                break;

            case pix_format_bgr24:
                color_conv(&rbuf_tmp, src, color_conv_bgr24_to_rgb24());
                break;

            case pix_format_abgr32:
                color_conv(&rbuf_tmp, src, color_conv_abgr32_to_argb32());
                break;

            case pix_format_bgra32:
                color_conv(&rbuf_tmp, src, color_conv_bgra32_to_argb32());
                break;

            case pix_format_rgba32:
                color_conv(&rbuf_tmp, src, color_conv_rgba32_to_argb32());
                break;
            }
            pmap_tmp.draw(window);
        }
    }
示例#4
0
void AggDraw(HWND hWnd, HDC hMemoryDC, HBITMAP hMemoryBitmap)
{
	if (g_hMem != NULL)
	{
		CAggDraw2DTo3D Agg;
		CPoint vP[4];
		int nCut = 50;
		vP[0] = CPoint(0, SrcImgBuf.height() - nCut);
		vP[1] = CPoint(SrcImgBuf.width(), SrcImgBuf.height());
		vP[2] = CPoint(SrcImgBuf.width(), 0);
		vP[3] = CPoint(0, nCut);

		Agg.Draw2DTo3D(DstImgBuf, SrcImgBuf, vP);

		DstMapImg.draw(hMemoryDC);
	}
}
示例#5
0
// Attach the pixel_map image buffer to the rendering_buffer.
static inline void pixel_map_attach (pixel_map& pm, agg::rendering_buffer *rbuf, bool flip_y) {
    int stride = pm.stride();
    rbuf->attach(pm.buf(), pm.width(), pm.height(), flip_y ? stride : -stride);
}