| | 4294 | if(NULL == GL_EXTCALL(wglGetPixelFormatAttribivARB)) { |
| | 4295 | WARN("wglGetPixelFormatAttribivARB is unavailable\n"); |
| | 4296 | Adapters[0].nCfgs=DescribePixelFormat(hdc,0,0,NULL); |
| | 4297 | |
| | 4298 | Adapters[0].cfgs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, Adapters[0].nCfgs *sizeof(WineD3D_PixelFormat)); |
| | 4299 | cfgs = Adapters[0].cfgs; |
| | 4300 | |
| | 4301 | for(iPixelFormat=1; iPixelFormat<=Adapters[0].nCfgs; iPixelFormat++) { |
| | 4302 | PIXELFORMATDESCRIPTOR pfd={0}; |
| | 4303 | res = DescribePixelFormat(hdc,iPixelFormat,sizeof(pfd),&pfd); |
| | 4304 | |
| | 4305 | if(!res) |
| | 4306 | continue; |
| | 4307 | |
| | 4308 | /* Cache the pixel format */ |
| | 4309 | cfgs->iPixelFormat = iPixelFormat; |
| | 4310 | cfgs->redSize = pfd.cRedBits; |
| | 4311 | cfgs->greenSize = pfd.cGreenBits; |
| | 4312 | cfgs->blueSize = pfd.cBlueBits; |
| | 4313 | cfgs->alphaSize = pfd.cAlphaBits; |
| | 4314 | cfgs->depthSize = pfd.cDepthBits; |
| | 4315 | cfgs->stencilSize = pfd.cStencilBits; |
| | 4316 | cfgs->windowDrawable = (PFD_DRAW_TO_WINDOW == (pfd.dwFlags & PFD_DRAW_TO_WINDOW)); |
| | 4317 | switch (pfd.iPixelType) |
| | 4318 | { |
| | 4319 | case PFD_TYPE_RGBA: |
| | 4320 | cfgs->iPixelType = WGL_TYPE_RGBA_ARB; |
| | 4321 | break; |
| | 4322 | case PFD_TYPE_COLORINDEX: |
| | 4323 | cfgs->iPixelType = WGL_TYPE_COLORINDEX_ARB; |
| | 4324 | break; |
| | 4325 | default: |
| | 4326 | cfgs->iPixelType = 0; |
| | 4327 | } |
| | 4328 | cfgs->doubleBuffer = (PFD_DOUBLEBUFFER == (pfd.dwFlags & PFD_DOUBLEBUFFER)); |
| | 4329 | cfgs->auxBuffers = pfd.cAuxBuffers; |
| | 4330 | |
| | 4331 | cfgs->pbufferDrawable = FALSE; |
| | 4332 | cfgs->numSamples = 0; |
| | 4333 | |
| | 4334 | TRACE("iPixelFormat=%d, iPixelType=%#x, doubleBuffer=%d, RGBA=%d/%d/%d/%d, depth=%d, stencil=%d, windowDrawable=%d, pbufferDrawable=%d\n", cfgs->iPixelFormat, cfgs->iPixelType, cfgs->doubleBuffer, cfgs->redSize, cfgs->greenSize, cfgs->blueSize, cfgs->alphaSize, cfgs->depthSize, cfgs->stencilSize, cfgs->windowDrawable, cfgs->pbufferDrawable); |
| | 4335 | cfgs++; |
| | 4336 | } |
| | 4337 | } |
| | 4338 | else { |
| 4346 | 4396 | TRACE("iPixelFormat=%d, iPixelType=%#x, doubleBuffer=%d, RGBA=%d/%d/%d/%d, depth=%d, stencil=%d, windowDrawable=%d, pbufferDrawable=%d\n", cfgs->iPixelFormat, cfgs->iPixelType, cfgs->doubleBuffer, cfgs->redSize, cfgs->greenSize, cfgs->blueSize, cfgs->alphaSize, cfgs->depthSize, cfgs->stencilSize, cfgs->windowDrawable, cfgs->pbufferDrawable); |
| 4347 | 4397 | cfgs++; |
| 4348 | 4398 | } |