OpenGL and SDL. Is there an easy way?

Started by
9 comments, last by MicahM 22 years, 4 months ago
A couple weeks ago I decided to spend my winter break teaching myself 3D/Game programming. So, I started out by looking for a good website that contained all the information that I would need. I then went through and looked into what 3D, windowing, and input APIs I would need. From what I have found there are two options: Direct X (with Direct 3D) and SDL (with OpenGL). So I then went and looked for some tutorials on how to get all this working. Seeing as how I am a big fan of cross platform compatability I decided to go with SDL/OpenGL. That was where my problems began. What I was hoping for was to be able to just sit down and start coding. What I ended up doing instead was spending the next 3 days tring to figure out how to get a bare bones program to compile using anything other than MSVC++. Everywhere I go there are tutorials for how to do this and that in MSVC++. Meanwhile, here I am, with my connection to the internet, a copy of CodeWarrior and a distinct dislike for MSVC. Teaching myself the art of compiling was not what I had in mind for my break. My question is this (finally): Is there an easy way to write and compile SDL/OpenGL applications without all the hassle of beefed up IDEs and optimizing compilers? What I''m imagining is writing my program in a text editor, telling a command line compiler where the required headers, libraries, and DLLs can be found, and then compiling and running my program. So far, after going through various tutorials, forums, websites, etc, all I have found are a collection of tutorials discribing how to get SDL/OpenGL working in MSVC++, and a couple tutorials that tell you to download their package that has everything setup for you and not learn to do it yourself. The reason I want the basics is because I want to learn what all is going on when I compile my programs, I don''t want to just "trust" that everything is going as planned and that MS or a guy with a website set everything up correctly. MORE RANTING: Why can''t it be like ANSI C where you write you program and compile it. No fuss. No worries. If you have libraries you want to use just let the compiler know where to find them and all is well. Sorry, this turned into quite the rant. I am very frustrated with all the MSVC++ stuff I''m finding. Even the people that are against the usage of MS and Direct X/3D use MSVC++ to write their programs which is even more frustrating. -Micah the Frustrated
Advertisement
The best solution to your problem would be to quit using windows... it sucks (hardcore) and no self-respecting developer will use it in this day and age.

If you /really/ can''t switch to Linux,BSD,etc (and that would only be if you''re coding in a public library or school or something), then check out MinGW (http://www.mingw.org)... it''s a port of gcc for windoze... then you can compile at the command line like you wanted to. Also, if you really are going to use windoze, there are a couple of editors that are great for programming (ported from Linux): Emacs and Vim (search google, i don''t feel like looking up another url, hehe)
Hey

Yeah, definetly stop using windows, but thats not the advice he wants, right?
Im using windows right now for myself and im using SDL/OpenGL

There is still loads of stuff I need to learn about OpenGL and SDL, but I got the bare bones working pretty soon.
Try looking under Nehe productions, he has an SDL basecode too.
It didnt work right away under Dev C++ (Uses mingw) but after some tweaking it did and its a lot easier than Direct X for sure.

Otherwise, try looking at the examples in on www.libsdl.org there is a part about opengl on the site with some of the Nehe tuts as well
"There is a $500 fine for detonating explosives within the confines of a city"
You have to do some weird stuff to get it to work in MSVC. As the first poster said: It''s easier with GCC, preferably in a unix shell; but, understandably, not everyone has that option . I''m not going to go so far as to say the "no self respecting developer part," since many do and will continue to in the future. Anyway, here''s what I do:
  • Setup a Win32 Application project.
  • Go to Project->Settings->Link.

    1. Check "Ignore all default libraries.
    2. Paste this into the Library/object modules text box: msvcrt.lib libc.lib libcp.lib kernel32.lib sdlmain.lib sdl.lib opengl32.lib glu32.lib

  • Remember that you must use int main(int argc, char *argv[]) as your entry point (don''t leave out the parameters). You may also need to prefix it with extern "C"
    If you have any problems, feel free to ask .

    [Resist Windows XP''s Invasive Production Activation Technology!]
  • Hey

    Is that for code warrior?
    With Dev C++ it will never work if you dont use the standard Windows entry point (winmain)
    Anyways, the reason I use SDL is to avoid the complications of Windows programming
    "There is a $500 fine for detonating explosives within the confines of a city"
    Maybe I''ll try getting it all working under linux. I''m not a big fan of windows by any extent and I guess it''s time I honed my Linux skills anyway.

    /me dreams of being able to create text file, write a program, compile it, and run it without having to spend hours before hand setting it up...

    -Micah
    search for kdevelop for kde (very simple to setup + compile)

    http://uk.geocities.com/sloppyturds/gotterdammerung.html
    Just use the recently posted msvc++ sdl tutorial on gamedev.net and port it to work with codeworrier. All you have to do is point your project to link with the correct libs and then your good to go. And under linux it is even eaiser IMHO (especiall with debian and apt

    It is foolish for a wise man to be silent, but wise for a fool.

    Matthew
    WebMaster
    www.Matt-Land.com

    All your Xbox base are belong to Nintendo.
    It is foolish for a wise man to be silent, but wise for a fool.
    (MichahM -- you may want to skip past my rant below and get to the bottom, where I hope I've helped to answer your real question)



    No self respecting developer uses Windows?

    Are you off your rocker? Please list some game development houses (since this is a game development related forum) that don't use Windows as their primary (usually its their ONLY) development platform?

    I don't always like Microsoft as a company, because they do some underhanded things, but Visual C++ is by far the best C++ IDE I've used.

    For the record, I actually grew up using/programming for the C64, then Amigas and UNIX systems (owned a SPARC-2 running SunOS 4.x for a long time), I also do a lot of contractual server-based backend programming for Solaris, AIX, FreeBSD and Linux currently, with gcc, emacs, vi, KDevelop, etc, so I'm completely aware of what is available for those systems.

    Using Linux for political purposes (boycotting Microsoft) or for a free, high-quality server-side OS is fine and dandy, but IMO anyone who faults Microsoft for the quality of their OSes or desktop software is still living in 1998. Since Windows 2000 (and now XP) Microsoft makes solid OSes and great development tools, they also provide excellent development reference documentation for free.



    To get back on-topic:

    1) You can use MSVC++ from the command-line. Though the IDE hides this from the developer, MSVC++ has a full set of command-line tools which do the actual compiling and linking, just like UNIX based systems do. It also has a full make-like program (nmake) for those who like to do that stuff hands-on. So, you CAN use MSVC++ from the command-line...The only reason not to use it would be price (don't want to pay for it) or general dislike of Microsoft...In that case, there are alternate (free) compilers like the gcc ports, and Borland's free command-line version of C++ Builder:

    http://www.borland.com/bcppbuilder/freecompiler/

    If you need more information on using SDL with these alternate free compilers, check the SDL FAQ:

    http://www.libsdl.org/faq/FAQ-Win32.html


    2) You mentioned you use CodeWarrior. As far as I know SDL ships with CodeWarrior project files, but they are Mac format. I have no idea if they are compatible with the Windows version of CodeWarrior and/or what changes you might need to make to make them compatible.


    Edited by - gmcbay on December 30, 2001 4:26:26 PM
    Click the last link in my profile sinature, and take tutorial number one. Ernest Pazera wrote a good tutorial on setting up SDL with MSVC++ under Windows.

    Next go here. Section 2.7 and 2.8 I believe are on using OpenGL and SDL together.

    Good luck. If you have any SDL problems post in the Cone3D forum.

    ------------------------------
    Simple DirectMedia Layer:
    Main Site - (www.libsdl.org)
    Cone3D Tutorials- (cone3D.gamedev.net)
    GameDev.net's Tutorials - (Here)

    Edited by - Drizzt DoUrden on December 30, 2001 4:30:49 PM
    ------------------------------Put THAT in your smoke and pipe it

    This topic is closed to new replies.

    Advertisement