ENTER_GL and ActivateContext question

Ivan Gyurdiev ivg231 at gmail.com
Thu Dec 13 19:46:42 CST 2007


> A lot of code in WineD3D avoids the getters and setters, and just accesses the 
> implementation structure. While any object oriented programmer screams when 
> doing that, we need it for performance reasons. Currently we spend 10 to 20 
> per cent of the CPU time spent in WineD3D just in surface::GetContainer and 
> its callees, if we'd use Getters and Setters everywhere then goodbye 
> performance(I want to replace GetContainer somewhen). 

So inline it... imho the performance argument is a bad reason to abandon 
maintainability. 

Your codebase is constantly getting more complex, and now you're having 
threading issues, which will only get more important with multi-core and 
other such things becoming standard.  Meanwhile graphics cards are 
getting a lot more powerful - I solved the performance problem 2 weeks 
ago w/ a GeForce 8800 GT.

As for the "object oriented programmer" - I would hope every programmer 
thinks in terms of objects, even when writing C code.
The GLSL backend wouldn't be available today if the shader compiler was 
still a big series of if statements.

Ivan



More information about the wine-devel mailing list