/** * ToxiTea Utilization Example * * CToxiExample.cpp * created on 22 de junho 2002 01:22 * */ /* ---- Copyright (C) 2002 Jose Eduardo R. MourĂ£o (eduardo_rdm@hotmail.com) ---- This file is part of ToxiTea. ToxiTea is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ToxiTea is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with ToxiTea; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA For more information and updates visit: http://toxitea.sourceforge.net or mail to: eduardo_rdm@hotmail.com COMPILING AND/OR USING YOU ARE ACCEPTING ALL TERMS ABOVE. THIS LICENSE CAN BE CHANGED ANY TIME FOR ANY REASON WITHOUT NO COMMUNICATION. */ /** * @author eduardo rm */ /* Some words: This method bellow its a very elegant way to build your toxitea-based applications, you can full customize toxitea objects making the framework very extensible and easy to use. */ #include <windows.h> #include <string> #include <iostream.h> #include "ToxiTea.h" class MainRenderer: public CToxiGLRenderer { public: ; double rot_x, rot_y, rot_z; MainRenderer(){ this->viewportClose=0.1; this->viewportFar=100; this->viewportAngle=45; rot_x=0; rot_y=0; rot_z=0; } void drawScene() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0f,0.0f,-6.0f); glRotatef(rot_x,1,0,0); glRotatef(rot_y,0,1,0); glRotatef(rot_z,0,0,1); this->sampleDrawScene(); } void resizeContext() { this->sampleResizeContext(); } void initScene() { } }; class MainWindow: public CToxiWindow { public: CToxiConfig MyFirstConfig; MainRenderer MyFirstRenderer; MainWindow() { MyFirstConfig.setDefaultParams(); startWindow(MyFirstConfig,&MyFirstRenderer); startRenderer(); } void onKeyPress(int key) { switch(key) { case VK_ESCAPE: { exit(0); break; } case VK_UP: { MyFirstRenderer.rot_x+=1; break; } case VK_DOWN: { MyFirstRenderer.rot_x-=1; break; } case VK_LEFT: { MyFirstRenderer.rot_z-=1; break; } case VK_RIGHT: { MyFirstRenderer.rot_z+=1; break; } } } }; /** Main API Entry */ int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CToxiTea ToxiTea; MainWindow window; return 0; }
EXAMPLES BELLOW ARE OUTDATED.
Example 1 simple window:
/** * ToxiTea Utilization Example - Simple example * * CToxiExample.cpp * created on 22 de junho 2002 01:25 * */ /** * @author eduardo rm */ #include windows.h #include string #include iostream.h #include "ToxiTea.h" void my_A(void)
{
MessageBox(NULL,"YOU PRESSED A","MSG",MB_OK|MB_ICONERROR);
} /** Main API Entry */ int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CToxiTea ToxiTea; CToxiConfig MyFirstConfig; MyFirstConfig.setDefaultParams();
MyFirstConfig.setWindowColorBits(16);
MyFirstConfig.setWindowSize(640,480); CToxiD3DRenderer MyFirstRenderer; // YOU CAN CHANGE THIS TO CToxiGLRenderer CToxiWindow MyFirstWindow(MyFirstConfig,&MyFirstRenderer); MyFirstWindow.input.Keyboard.A(&my_A);
MyFirstWindow.startRenderer(); return 0; }
Example 2 threaded windows:
/** * ToxiTea Utilization Example - Multiple Threaded Windows * * CToxiExample.cpp * created on 22 de junho 2002 01:22 * */ /** * @author eduardo rm */ #include windows.h #include string #include iostream.h #include "ToxiTea.h" void start_first_window(void) { CToxiConfig MyFirstConfig; MyFirstConfig.setDefaultParams(); CToxiD3DRenderer MyFirstRenderer; CToxiWindow MyFirstWindow(MyFirstConfig,&MyFirstRenderer); } void start_second_window(void) { CToxiConfig MyFirstConfig; MyFirstConfig.setDefaultParams(); CToxiGLRenderer MySecondRenderer; CToxiWindow MySecondWindow(MyFirstConfig,&MySecondRenderer); } /** Main API Entry */ int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CToxiTea ToxiTea; CToxiThread Wnd1, Wnd2; Wnd1.setThreadFunc(&start_first_window); Wnd2.setThreadFunc(&start_second_window); Wnd1.begin(); Wnd2.begin(); Wnd1.end(); Wnd2.end(); return 0; }