Skip to main content
gamedev.net
🔒 Locked

win32 server

Started by RolandofGilead 4 replies 800+ views
Original Post
RolandofGilead
RolandofGilead
from the Red Book,
Quote:
In some implementations (such as with the X Window System), OpenGL is designed to work even if the computer that displays the graphics you create isn't the computer that runs your graphics program. This might be the case if you work in a networked computer environment where many computers are connected to one another by a digital network. In this situation, the computer on which your program runs and issues OpenGL drawing commands is called the client, and the computer that receives those commands and performs the drawing is called the server. The format for transmitting OpenGL commands (called the protocol) from the client to the server is always the same, so OpenGL programs can work across a network even if the client and server are different kinds of computers.
Are there any implementations of this on Windows XP or perhaps a guide to the protocol so I can write one?
_the_phantom_
_the_phantom_
In the win32 world the client and server are on the same machine due to the way the hardware drivers work.

As to writing your own, well you could have a go at making your own OpenGL work-a-like, the other option is to produce your own DLL to pretend to be the OpenGL32.dll, have it capture the infomation as its sent and deal with it however it needs to, however you have a slight problem that even client side commands would need to be sent to the 'server' machine as the graphic drivers need to know about them all the same.
hplus0603
hplus0603
Yes, the "installable client driver" mechanism of accelerating OpenGL on Windows allows you to write an OpenGL implementation of your own. It's probably easiest to start with something like MESA, build it into a DLL called OpenGL32.dll, and stick it in the directory of an application you want to test with. Once you have that working, you might want to dive deeper into installing it as the default ICD (which is an arcane process that I don't know all the details of).

It is not, however, the case that "client" commands need to go across to the server. Client commands like ClientActiveTexture or VertexPointer need (and often COULD) send no data -- not until vertices are issued with ArrayElement or their ilk, do you need to send any data. Think about it: VertexPointer just hands you a pointer, it doesn't actually tell you how many vertices there are. How could you forward this to the server?
enum Bool { True, False, FileNotFound };
harry_x
harry_x
The X server from Cygwin project supports GLX on Windows so it can be used for network rendering just like in un*xes.
_the_phantom_
_the_phantom_
Quote:
Original post by hplus0603
It is not, however, the case that "client" commands need to go across to the server. Client commands like ClientActiveTexture or VertexPointer need (and often COULD) send no data -- not until vertices are issued with ArrayElement or their ilk, do you need to send any data. Think about it: VertexPointer just hands you a pointer, it doesn't actually tell you how many vertices there are. How could you forward this to the server?


Well, if you were making your own work-a-like, you wouldnt have to send across purely client commands to the server as you can control things as you need to, however if you are reling on a commerical hardware accelerator backend I'd have said it would be certainly safer to pass the 'client' commands across incase they do need them for some reason... well, ok you could test to see which a driver really needs, but I still feel better say than sorry...
RolandofGilead
RolandofGilead
Quote:
Original post by harry_x
The X server from Cygwin project supports GLX on Windows so it can be used for network rendering just like in un*xes.

Thanks.

To everyone else, was I not clear enough? What did I say that confused you so much?

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.