这篇教程C++ GetPixelFormat函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetPixelFormat函数的典型用法代码示例。如果您正苦于以下问题:C++ GetPixelFormat函数的具体用法?C++ GetPixelFormat怎么用?C++ GetPixelFormat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetPixelFormat函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: dibdrv_wglMakeCurrent/*********************************************************************** * dibdrv_wglMakeCurrent */static BOOL dibdrv_wglMakeCurrent( HDC hdc, struct wgl_context *context ){ HBITMAP bitmap; BITMAPOBJ *bmp; dib_info dib; GLenum type; BOOL ret = FALSE; if (!context) { pOSMesaMakeCurrent( NULL, NULL, GL_UNSIGNED_BYTE, 0, 0 ); return TRUE; } if (GetPixelFormat( hdc ) != context->format) FIXME( "mismatched pixel formats %u/%u not supported yet/n", GetPixelFormat( hdc ), context->format ); bitmap = GetCurrentObject( hdc, OBJ_BITMAP ); bmp = GDI_GetObjPtr( bitmap, OBJ_BITMAP ); if (!bmp) return FALSE; if (init_dib_info_from_bitmapobj( &dib, bmp )) { char *bits; int width = dib.rect.right - dib.rect.left; int height = dib.rect.bottom - dib.rect.top; if (dib.stride < 0) bits = (char *)dib.bits.ptr + (dib.rect.bottom - 1) * dib.stride; else bits = (char *)dib.bits.ptr + dib.rect.top * dib.stride; bits += dib.rect.left * dib.bit_count / 8; TRACE( "context %p bits %p size %ux%u/n", context, bits, width, height ); if (pixel_formats[context->format - 1].mesa == OSMESA_RGB_565) type = GL_UNSIGNED_SHORT_5_6_5; else type = GL_UNSIGNED_BYTE; ret = pOSMesaMakeCurrent( context->context, bits, type, width, height ); if (ret) { pOSMesaPixelStore( OSMESA_ROW_LENGTH, abs( dib.stride ) * 8 / dib.bit_count ); pOSMesaPixelStore( OSMESA_Y_UP, 1 ); /* Windows seems to assume bottom-up */ } } GDI_ReleaseObj( bitmap ); return ret;}
开发者ID:DusteDdk,项目名称:wine-multimedia,代码行数:54,
示例2: GetPixelFormatvoid Image::InsertImage(const Image* image, uint32 dstX, uint32 dstY, uint32 srcX /* = 0 */, uint32 srcY /* = 0 */, uint32 srcWidth /* = -1 */, uint32 srcHeight /* = -1 */){ if (GetPixelFormat() != image->GetPixelFormat()) { return; } if (image == NULL || dstX >= width || dstY >= height || srcX >= image->GetWidth() || srcY >= image->GetHeight()) { return; } uint32 insertWidth = (srcWidth == (uint32)-1) ? image->GetWidth() : srcWidth; uint32 insertHeight = (srcHeight == (uint32)-1) ? image->GetHeight() : srcHeight; if (srcX + insertWidth > image->GetWidth()) { insertWidth = image->GetWidth() - srcX; } if (dstX + insertWidth > width) { insertWidth = width - dstX; } if (srcY + insertHeight > image->GetHeight()) { insertHeight = image->GetHeight() - srcY; } if (dstY + insertHeight > height) { insertHeight = height - dstY; } PixelFormat format = GetPixelFormat(); int32 formatSize = PixelFormatDescriptor::GetPixelFormatSizeInBytes(format); uint8* srcData = image->GetData(); uint8* dstData = data; for (uint32 i = 0; i < insertHeight; ++i) { memcpy(dstData + (width * (dstY + i) + dstX) * formatSize, srcData + (image->GetWidth() * (srcY + i) + srcX) * formatSize, formatSize * insertWidth); }}
开发者ID:galek,项目名称:dava.framework,代码行数:49,
示例3: createDeviceExvoid CIrrWindow::createIrrDevice(){ // create irr device SIrrlichtCreationParameters param; param.WindowId = (void*)getHandle(); param.ZBufferBits = 32; param.DriverType = video::EDT_OPENGL; m_device = createDeviceEx(param); m_driver = m_device->getVideoDriver(); m_smgr = m_device->getSceneManager(); // init opengl HDC HDc = GetDC( getHandle() ); PIXELFORMATDESCRIPTOR pfd={0}; pfd.nSize=sizeof(PIXELFORMATDESCRIPTOR); int pf = GetPixelFormat(HDc); DescribePixelFormat(HDc, pf, sizeof(PIXELFORMATDESCRIPTOR), &pfd); pfd.dwFlags |= PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW; pfd.cDepthBits=16; pf = ChoosePixelFormat(HDc, &pfd); SetPixelFormat(HDc, pf, &pfd); // share video data m_videoData.OpenGLWin32.HWnd = NULL; m_videoData.OpenGLWin32.HDc = HDc; m_videoData.OpenGLWin32.HRc = wglCreateContext(HDc); // share for multithread wglShareLists((HGLRC)m_driver->getExposedVideoData().OpenGLWin32.HRc, (HGLRC)m_videoData.OpenGLWin32.HRc); g_irrView = this; initScene();}
开发者ID:codeman001,项目名称:gsleveleditor,代码行数:34,
示例4: getInternalFormatstatic GLint getInternalFormat(void){ switch (glctx.type) {#ifdef CONFIG_GL_WIN32 case GLTYPE_W32: { PIXELFORMATDESCRIPTOR pfd; HDC vo_hdc = vo_w32_get_dc(vo_w32_window); int pf = GetPixelFormat(vo_hdc); if (!DescribePixelFormat(vo_hdc, pf, sizeof pfd, &pfd)) { r_sz = g_sz = b_sz = a_sz = 0; } else { r_sz = pfd.cRedBits; g_sz = pfd.cGreenBits; b_sz = pfd.cBlueBits; a_sz = pfd.cAlphaBits; } vo_w32_release_dc(vo_w32_window, vo_hdc); } break;#endif#ifdef CONFIG_GL_X11 case GLTYPE_X11: if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_RED_SIZE, &r_sz) != 0) r_sz = 0; if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_GREEN_SIZE, &g_sz) != 0) g_sz = 0; if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_BLUE_SIZE, &b_sz) != 0) b_sz = 0; if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_ALPHA_SIZE, &a_sz) != 0) a_sz = 0; break;#endif } rgb_sz=r_sz+g_sz+b_sz; if(rgb_sz<=0) rgb_sz=24;#ifdef TEXTUREFORMAT_ALWAYS return TEXTUREFORMAT_ALWAYS;#else if(r_sz==3 && g_sz==3 && b_sz==2 && a_sz==0) return GL_R3_G3_B2; if(r_sz==4 && g_sz==4 && b_sz==4 && a_sz==0) return GL_RGB4; if(r_sz==5 && g_sz==5 && b_sz==5 && a_sz==0) return GL_RGB5; if(r_sz==8 && g_sz==8 && b_sz==8 && a_sz==0) return GL_RGB8; if(r_sz==10 && g_sz==10 && b_sz==10 && a_sz==0) return GL_RGB10; if(r_sz==2 && g_sz==2 && b_sz==2 && a_sz==2) return GL_RGBA2; if(r_sz==4 && g_sz==4 && b_sz==4 && a_sz==4) return GL_RGBA4; if(r_sz==5 && g_sz==5 && b_sz==5 && a_sz==1) return GL_RGB5_A1; if(r_sz==8 && g_sz==8 && b_sz==8 && a_sz==8) return GL_RGBA8; if(r_sz==10 && g_sz==10 && b_sz==10 && a_sz==2) return GL_RGB10_A2;#endif return GL_RGB;}
开发者ID:grevutiu-gabriel,项目名称:mplayer-vaapi,代码行数:60,
|