Previous | Home | Up | Next |
In this section, we will create our first LVT program, simple
. simple
is a very basic (and very boring) program that displays a window on the screen,
and then exits when the window is closed.
simple.cpp:
#include <lvt/lvt.h> int main(int argc, char *argv[]) { LVT::App myApp; LVT::Wnd myWnd; myApp.Init(&argc, &argv); myWnd.Create("My Window"); myApp.Run(myWnd); return 0; }
Let's examine the individual pieces of the code.
#include <lvt/lvt.h>
Most LVT programs will begin by including lvt/lvt.h. This header contains the most common class definitions and is sufficient for most programs.
LVT::App myApp; LVT::Wnd myWnd;
Every LVT program contains exactly one App
object and
one or more Wnd
objects. Notice that both objects are in the
LVT
namespace, so we must qualify them. Alternatively, we could
have brought them into scope with a using namespace
LVT
statement.
myApp.Init(&argc, &argv);
The first thing any LVT program must do is call the App::Init
function. Init
establishes a connection to the windowing system and initializes the windowing
portion of the library.We pass Init
the address of the argc
and argv
variables. This
will parse the command line for common options such as --display
that well-behaved X11 programs
are expected to understand. You must call Init
before calling any other LVT
object member function.
myWnd.Create("My Window");
Wnd::Create
creates the window and sets its title (in this case,
the title is "My Window"). Create
does not show (or present) the window. Create
will return false
if the creation was not successful. Once the call
to Create
succeeds, OpenGL is initialized, and we are ready to begin drawing.
myApp.Run(myWnd);
App::Run
initializes the message loop and begins processing
messages. Run
takes one optional argument: a reference to the applications "main" window.
Run
will also show the window passed to it. When this window is closed, the messageloop will end,
and Run
will return.
To compile simple
on UNIX and UNIX-Like systems, we will make use of the pkg-config
utility to manage the library dependencies. We can compile the program like this:
$ g++ -o simple simple.cpp `pkg-config --cflags --libs liblvt`
To compile simple
on Windows systems, we link against either liblvt.lib, or liblvtd.lib (for
debugging). LVT provides a default implementation of WinMain
that calls a user-supplied main
function. This ensures that any LVT program will compile on any LVT-supported platform. If you wish to use your
own WinMain
instead of main
include a
#define LVT_NO_DEF_WINMAIN
statement before including lvt/lvt.h
. Some LVT classes contain inlined calls to OpenGL, so
we will also need to link against opengl32.lib. The LVT source distribution contains Visual Studio project files for
all sample programs. You can use these as templates for creating your own LVT programs.
If all went well, we should be able to run our new program and see a very basic, very boring window that should look something like this.
In the next section, we'll look at handling user input, so that our window can actually do something useful.
Previous | Home | Up | Next |