d3drtsurf=NULL;\r
external_driving=false;\r
dsallocator=NULL;\r
+ filter_type=D3DTEXF_NONE;\r
lastrendertime=timeGetTime();\r
event = CreateEvent(NULL,/*FALSE*/TRUE,FALSE,NULL);\r
d3dmutex = CreateMutex(NULL,FALSE,NULL);\r
Log::getInstance()->log("OSD", Log::WARN, "Could not create Direct3D9 vertex buf!");\r
return 0;\r
}\r
+ /* We have to determine which kind of filtering is supported*/\r
+ D3DCAPS9 caps;\r
+ d3ddevice->GetDeviceCaps(&caps);\r
+ filter_type=D3DTEXF_NONE;\r
+ if ( ((caps.StretchRectFilterCaps & D3DPTFILTERCAPS_MINFPOINT)!=0)\r
+ && ((caps.StretchRectFilterCaps & D3DPTFILTERCAPS_MAGFPOINT)!=0)) {\r
+ filter_type=D3DTEXF_POINT;\r
+ }\r
+ if ( ((caps.StretchRectFilterCaps & D3DPTFILTERCAPS_MINFLINEAR)!=0)\r
+ && ((caps.StretchRectFilterCaps & D3DPTFILTERCAPS_MAGFLINEAR)!=0)) {\r
+ filter_type=D3DTEXF_LINEAR;\r
+ }\r
\r
//Now we will create the Screen\r
screen = new SurfaceWin(Surface::SCREEN);\r
sourcerect.left=(surf_desc.Width-correction)/2;\r
sourcerect.right=sourcerect.left+correction;\r
}\r
-\r
- d3ddevice->StretchRect(present,&sourcerect,d3drtsurf ,&destrect,D3DTEXF_LINEAR);\r
+ d3ddevice->StretchRect(present,&sourcerect,d3drtsurf ,&destrect,filter_type);\r
}\r
} else {\r
VideoWin* video =(VideoWin*) Video::getInstance();\r