transition to openGL 2.0

i would like to know if somebody knows about how hard it will be to “upgrade” OpenGL 1.x code to 2.0. Maybe it’s necessary to completely reorganize stuff (due to vertex buffer management and so on), am i right?

so whats your opinions?

Read the overview here . As long as you don’t face ‘pure 2.0 only’ implementations, you don’t need to change your code at all.

If you don’t change your code at all, then what you really do is staying with 1.x,
instead of migrating to 2.0 . Migration to 2.0 will involve changes in code.

The migration, in real life, also means supporting two generations of HW (with, and without gl2.0 functionality)
for several years. The really important question is whether :

  1. it will be possible to support both generations with single new 2.0 interface
  2. or you will be forced to split your code in two (100% plain 1.x interface for todays HW + full 2.0 interface for new HW)

Dont misunderstand me, I’m talking on interface (2.0 objects/memory/sync), not a functionality (like 2.0 shaders, here code split will be unavoidable, just like we do it now with Nvidia & Ati extensions)

I do think it will be hard if you want to use “pure” OpenGL 2.0.

For my “amateur” 3d engine, I try to stay as independent as possible from the OpenGL implementation, also checking latest OGL 2.0 papers is a good way not to take the opposite direction with ur engine.

But now when I (re)implement parts of it, I have OGL 2.0 in mind, not OGL 1.x anymore.

Yes you will have to rewrite and replace “old” OpenGL 1.x code. But how much you will have to rewite depends on the level of abstraction you’ve made with ur engine.

Carmacksutra is pointing a real problem. While people with the latest hardware and drivers will probably be no problem, there will be a lot of people with OGL 2.0 incompatible hardware or/and drivers.

Supporting both the old and new interface isn’t too much of a solution IMO. Why going to the new interface if it’s to stay with the old one too? The 3D engine won’t gain much via the new interface because it still has to be compatible with the old one.
Just look at Unreal engine, it supports so much 3D APIs/modes (Software, Direct3D, OpenGL, Glide, PowerVr, S3 MeTaL,…), every PC with or without a 3D card can run it. But the cost of doing so is that mostly none of the APIs are correctly used (slow, buggy, etc…)

My advice: Don’t add OGL 2.0 support to an old OGL 1.x engine just to say “it supports OGL 2.0”.
Rather when you make a new 3D engine, design it with OGL 2.0 in mind… OGL 2.0 only and no backward compatible support (won’t probably be much of a problem because it’s a brand new engine, and so it’s logicaly meant to use the latest features only given by hardwares that support OGL 2.0 anyway).

[This message has been edited by GPSnoopy (edited 03-18-2002).]