From 810520c2cd70cb1a7d1e2b75074ea538eb10eb61 Mon Sep 17 00:00:00 2001 From: Roy Qu Date: Sun, 7 Aug 2022 12:10:12 +0800 Subject: [PATCH] add new templates --- windows/templates/1-WinApp/WinApp_c.txt | 66 ++ windows/templates/1-WinApp/Windows.ico | Bin 0 -> 4286 bytes windows/templates/1-WinApp/info.template | 19 + .../templates/2-ConsoleApp/ConsoleApp_c.txt | 8 + .../templates/2-ConsoleApp/ConsoleApp_cpp.txt | 7 + windows/templates/2-ConsoleApp/ConsoleToo.ico | Bin 0 -> 4286 bytes windows/templates/2-ConsoleApp/info.template | 19 + windows/templates/3-StaticLib/StaticLib.ico | Bin 0 -> 4286 bytes windows/templates/3-StaticLib/info.template | 17 + windows/templates/4-DLL/DLL.ico | Bin 0 -> 4286 bytes windows/templates/4-DLL/Dll_c.txt | 34 + windows/templates/4-DLL/Dll_cpp.txt | 44 + windows/templates/4-DLL/Dll_h.txt | 12 + windows/templates/4-DLL/Dll_hpp.txt | 18 + windows/templates/4-DLL/info.template | 28 + windows/templates/FileEditor/Editor.ico | Bin 0 -> 1126 bytes windows/templates/FileEditor/FileEditor_c.txt | 172 ++++ windows/templates/FileEditor/FileEditor_h.txt | 6 + .../templates/FileEditor/FileEditor_rc.txt | 18 + windows/templates/FileEditor/info.template | 31 + windows/templates/GLFW/GLFW.ico | Bin 0 -> 4286 bytes windows/templates/GLFW/GLFW_main.cpp.txt | 111 ++ windows/templates/GLFW/GLFW_shader.frag.txt | 8 + windows/templates/GLFW/GLFW_shader.h.txt | 98 ++ windows/templates/GLFW/GLFW_shader.vs.txt | 11 + windows/templates/GLFW/info.template | 39 + windows/templates/GLUT/CL_GLUT.ico | Bin 0 -> 4286 bytes windows/templates/GLUT/CL_GLUT_glmatrix.c.txt | 219 ++++ windows/templates/GLUT/CL_GLUT_glmatrix.h.txt | 31 + windows/templates/GLUT/CL_GLUT_shapes.c.txt | 946 ++++++++++++++++++ windows/templates/GLUT/info.template | 28 + windows/templates/Graphics/CL_Graphics.ico | Bin 0 -> 4150 bytes .../templates/Graphics/CL_Graphics_cpp.txt | 32 + windows/templates/Graphics/info.template | 20 + windows/templates/Hello/Communication.ico | Bin 0 -> 2998 bytes windows/templates/Hello/Hello_c.txt | 6 + windows/templates/Hello/Hello_cpp.txt | 5 + windows/templates/Hello/info.template | 20 + windows/templates/HelloInput/ConsoleToo.ico | Bin 0 -> 4286 bytes windows/templates/HelloInput/HelloInput_c.txt | 27 + .../templates/HelloInput/HelloInput_cpp.txt | 27 + windows/templates/HelloInput/info.template | 19 + windows/templates/Jackpot/Games.ico | Bin 0 -> 6054 bytes windows/templates/Jackpot/Jackpot_cpp.txt | 88 ++ windows/templates/Jackpot/info.template | 18 + windows/templates/MDIEditor/MDIEditor_c.txt | 433 ++++++++ windows/templates/MDIEditor/MDIEditor_h.txt | 24 + windows/templates/MDIEditor/MDIEditor_rc.txt | 31 + windows/templates/MDIEditor/Windows.ico | Bin 0 -> 4286 bytes windows/templates/MDIEditor/info.template | 30 + windows/templates/OpenGL/OpenGL.txt | 190 ++++ windows/templates/OpenGL/Pizza.ico | Bin 0 -> 4286 bytes windows/templates/OpenGL/info.template | 19 + windows/templates/OpenMP/File Management.ico | Bin 0 -> 766 bytes windows/templates/OpenMP/OpenMP_c.txt | 17 + windows/templates/OpenMP/OpenMP_cpp.txt | 26 + windows/templates/OpenMP/info.template | 21 + .../Single Dialog Application.ico | Bin 0 -> 766 bytes .../Single Dialog Application.project.ico | Bin 0 -> 766 bytes .../Single_Dialog_Application_main.c.txt | 42 + .../Single_Dialog_Application_resource.h.txt | 5 + .../Single_Dialog_Application_resource.rc.txt | 24 + .../Single Dialog Application/info.template | 33 + windows/templates/StdThread/Software.ico | Bin 0 -> 10278 bytes windows/templates/StdThread/StdThread_c.txt | 2 + windows/templates/StdThread/StdThread_cpp.txt | 43 + windows/templates/StdThread/info.template | 21 + windows/templates/Turtle/CL_Turtle.ico | Bin 0 -> 4286 bytes windows/templates/Turtle/CL_Turtle_cpp.txt | 27 + windows/templates/Turtle/info.template | 20 + windows/templates/WinAnim/WinAnim_c.txt | 191 ++++ windows/templates/WinAnim/WinAnim_rc.txt | 2 + windows/templates/WinAnim/Windows.ico | Bin 0 -> 4286 bytes windows/templates/WinAnim/info.template | 24 + windows/templates/epitrochoid/epitrochoid.ico | Bin 0 -> 180542 bytes .../templates/epitrochoid/epitrochoid_c.txt | 125 +++ windows/templates/epitrochoid/info.template | 20 + .../templates/hypotrochoid/hypotrochoid.ico | Bin 0 -> 96662 bytes .../templates/hypotrochoid/hypotrochoid_c.txt | 140 +++ windows/templates/hypotrochoid/info.template | 20 + windows/templates/mysql/info.template | 19 + windows/templates/mysql/mysql.ico | Bin 0 -> 4286 bytes windows/templates/mysql/mysql_c.txt | 103 ++ windows/templates/raygui/info.template | 21 + windows/templates/raygui/raygui.ico | Bin 0 -> 204862 bytes windows/templates/raygui/raygui_c.txt | 251 +++++ windows/templates/raylib-3d/info.template | 20 + windows/templates/raylib-3d/raylib.ico | Bin 0 -> 24702 bytes windows/templates/raylib-3d/raylib_3d_c.txt | 113 +++ .../templates/raylib-arkanoid/info.template | 20 + .../raylib-arkanoid/raylib_arkanoid.ico | Bin 0 -> 67646 bytes .../raylib-arkanoid/raylib_arkanoid.png | Bin 0 -> 11716 bytes .../raylib-arkanoid/raylib_arkanoid_c.txt | 324 ++++++ windows/templates/raylib-shader/info.template | 28 + windows/templates/raylib-shader/raylib.ico | Bin 0 -> 24702 bytes .../raylib-shader/raylib_3d_shader_c.txt | 68 ++ .../templates/raylib-shader/raylib_base.fs | 25 + .../templates/raylib-shader/raylib_base.vs | 26 + windows/templates/raylib-snake/info.template | 20 + .../templates/raylib-snake/raylib-snake.ico | Bin 0 -> 67646 bytes .../templates/raylib-snake/raylib_snake_c.txt | 286 ++++++ windows/templates/raylib-tetris/info.template | 20 + .../templates/raylib-tetris/raylib-tetris.ico | Bin 0 -> 67646 bytes .../raylib-tetris/raylib_tetris_c.txt | 791 +++++++++++++++ windows/templates/raylib/info.template | 29 + windows/templates/raylib/raylib-game.ico | Bin 0 -> 67646 bytes windows/templates/raylib/raylib_boom.wav | Bin 0 -> 13663 bytes windows/templates/raylib/raylib_c.txt | 124 +++ windows/templates/raylib/raylib_explosion.png | Bin 0 -> 830508 bytes .../templates/rdrawing-colors/info.template | 21 + .../rdrawing-colors/rdrawing_colors.ico | Bin 0 -> 67646 bytes .../rdrawing-colors/rdrawing_colors_c.txt | 350 +++++++ .../templates/rdrawing-doraemon/info.template | 20 + .../rdrawing-doraemon/rdrawing-doraemon.ico | Bin 0 -> 67646 bytes .../rdrawing-doraemon/rdrawing_doraemon_c.txt | 246 +++++ windows/templates/rdrawing/info.template | 20 + windows/templates/rdrawing/rdrawing.ico | Bin 0 -> 67646 bytes windows/templates/rdrawing/rdrawing_c.txt | 48 + windows/templates/sqlite/info.template | 19 + windows/templates/sqlite/sqlite.ico | Bin 0 -> 766 bytes windows/templates/sqlite/sqlite_c.txt | 106 ++ windows/templates/tcpclient/info.template | 20 + windows/templates/tcpclient/tcpclient.ico | Bin 0 -> 9662 bytes windows/templates/tcpclient/tcpclient_c.txt | 65 ++ windows/templates/tcpserver/info.template | 20 + windows/templates/tcpserver/tcpserver.ico | Bin 0 -> 67646 bytes windows/templates/tcpserver/tcpserver_c.txt | 77 ++ .../tinyfiledialogs/tinyfiledialogs.ico | Bin 0 -> 766 bytes .../tinyfiledialogs/tinyfiledialogs.template | 19 + .../tinyfiledialogs/tinyfiledialogs_c.txt | 235 +++++ 130 files changed, 7336 insertions(+) create mode 100644 windows/templates/1-WinApp/WinApp_c.txt create mode 100644 windows/templates/1-WinApp/Windows.ico create mode 100644 windows/templates/1-WinApp/info.template create mode 100644 windows/templates/2-ConsoleApp/ConsoleApp_c.txt create mode 100644 windows/templates/2-ConsoleApp/ConsoleApp_cpp.txt create mode 100644 windows/templates/2-ConsoleApp/ConsoleToo.ico create mode 100644 windows/templates/2-ConsoleApp/info.template create mode 100644 windows/templates/3-StaticLib/StaticLib.ico create mode 100644 windows/templates/3-StaticLib/info.template create mode 100644 windows/templates/4-DLL/DLL.ico create mode 100644 windows/templates/4-DLL/Dll_c.txt create mode 100644 windows/templates/4-DLL/Dll_cpp.txt create mode 100644 windows/templates/4-DLL/Dll_h.txt create mode 100644 windows/templates/4-DLL/Dll_hpp.txt create mode 100644 windows/templates/4-DLL/info.template create mode 100644 windows/templates/FileEditor/Editor.ico create mode 100644 windows/templates/FileEditor/FileEditor_c.txt create mode 100644 windows/templates/FileEditor/FileEditor_h.txt create mode 100644 windows/templates/FileEditor/FileEditor_rc.txt create mode 100644 windows/templates/FileEditor/info.template create mode 100644 windows/templates/GLFW/GLFW.ico create mode 100644 windows/templates/GLFW/GLFW_main.cpp.txt create mode 100644 windows/templates/GLFW/GLFW_shader.frag.txt create mode 100644 windows/templates/GLFW/GLFW_shader.h.txt create mode 100644 windows/templates/GLFW/GLFW_shader.vs.txt create mode 100644 windows/templates/GLFW/info.template create mode 100644 windows/templates/GLUT/CL_GLUT.ico create mode 100644 windows/templates/GLUT/CL_GLUT_glmatrix.c.txt create mode 100644 windows/templates/GLUT/CL_GLUT_glmatrix.h.txt create mode 100644 windows/templates/GLUT/CL_GLUT_shapes.c.txt create mode 100644 windows/templates/GLUT/info.template create mode 100644 windows/templates/Graphics/CL_Graphics.ico create mode 100644 windows/templates/Graphics/CL_Graphics_cpp.txt create mode 100644 windows/templates/Graphics/info.template create mode 100644 windows/templates/Hello/Communication.ico create mode 100644 windows/templates/Hello/Hello_c.txt create mode 100644 windows/templates/Hello/Hello_cpp.txt create mode 100644 windows/templates/Hello/info.template create mode 100644 windows/templates/HelloInput/ConsoleToo.ico create mode 100644 windows/templates/HelloInput/HelloInput_c.txt create mode 100644 windows/templates/HelloInput/HelloInput_cpp.txt create mode 100644 windows/templates/HelloInput/info.template create mode 100644 windows/templates/Jackpot/Games.ico create mode 100644 windows/templates/Jackpot/Jackpot_cpp.txt create mode 100644 windows/templates/Jackpot/info.template create mode 100644 windows/templates/MDIEditor/MDIEditor_c.txt create mode 100644 windows/templates/MDIEditor/MDIEditor_h.txt create mode 100644 windows/templates/MDIEditor/MDIEditor_rc.txt create mode 100644 windows/templates/MDIEditor/Windows.ico create mode 100644 windows/templates/MDIEditor/info.template create mode 100644 windows/templates/OpenGL/OpenGL.txt create mode 100644 windows/templates/OpenGL/Pizza.ico create mode 100644 windows/templates/OpenGL/info.template create mode 100644 windows/templates/OpenMP/File Management.ico create mode 100644 windows/templates/OpenMP/OpenMP_c.txt create mode 100644 windows/templates/OpenMP/OpenMP_cpp.txt create mode 100644 windows/templates/OpenMP/info.template create mode 100644 windows/templates/Single Dialog Application/Single Dialog Application.ico create mode 100644 windows/templates/Single Dialog Application/Single Dialog Application.project.ico create mode 100644 windows/templates/Single Dialog Application/Single_Dialog_Application_main.c.txt create mode 100644 windows/templates/Single Dialog Application/Single_Dialog_Application_resource.h.txt create mode 100644 windows/templates/Single Dialog Application/Single_Dialog_Application_resource.rc.txt create mode 100644 windows/templates/Single Dialog Application/info.template create mode 100644 windows/templates/StdThread/Software.ico create mode 100644 windows/templates/StdThread/StdThread_c.txt create mode 100644 windows/templates/StdThread/StdThread_cpp.txt create mode 100644 windows/templates/StdThread/info.template create mode 100644 windows/templates/Turtle/CL_Turtle.ico create mode 100644 windows/templates/Turtle/CL_Turtle_cpp.txt create mode 100644 windows/templates/Turtle/info.template create mode 100644 windows/templates/WinAnim/WinAnim_c.txt create mode 100644 windows/templates/WinAnim/WinAnim_rc.txt create mode 100644 windows/templates/WinAnim/Windows.ico create mode 100644 windows/templates/WinAnim/info.template create mode 100644 windows/templates/epitrochoid/epitrochoid.ico create mode 100644 windows/templates/epitrochoid/epitrochoid_c.txt create mode 100644 windows/templates/epitrochoid/info.template create mode 100644 windows/templates/hypotrochoid/hypotrochoid.ico create mode 100644 windows/templates/hypotrochoid/hypotrochoid_c.txt create mode 100644 windows/templates/hypotrochoid/info.template create mode 100644 windows/templates/mysql/info.template create mode 100644 windows/templates/mysql/mysql.ico create mode 100644 windows/templates/mysql/mysql_c.txt create mode 100644 windows/templates/raygui/info.template create mode 100644 windows/templates/raygui/raygui.ico create mode 100644 windows/templates/raygui/raygui_c.txt create mode 100644 windows/templates/raylib-3d/info.template create mode 100644 windows/templates/raylib-3d/raylib.ico create mode 100644 windows/templates/raylib-3d/raylib_3d_c.txt create mode 100644 windows/templates/raylib-arkanoid/info.template create mode 100644 windows/templates/raylib-arkanoid/raylib_arkanoid.ico create mode 100644 windows/templates/raylib-arkanoid/raylib_arkanoid.png create mode 100644 windows/templates/raylib-arkanoid/raylib_arkanoid_c.txt create mode 100644 windows/templates/raylib-shader/info.template create mode 100644 windows/templates/raylib-shader/raylib.ico create mode 100644 windows/templates/raylib-shader/raylib_3d_shader_c.txt create mode 100644 windows/templates/raylib-shader/raylib_base.fs create mode 100644 windows/templates/raylib-shader/raylib_base.vs create mode 100644 windows/templates/raylib-snake/info.template create mode 100644 windows/templates/raylib-snake/raylib-snake.ico create mode 100644 windows/templates/raylib-snake/raylib_snake_c.txt create mode 100644 windows/templates/raylib-tetris/info.template create mode 100644 windows/templates/raylib-tetris/raylib-tetris.ico create mode 100644 windows/templates/raylib-tetris/raylib_tetris_c.txt create mode 100644 windows/templates/raylib/info.template create mode 100644 windows/templates/raylib/raylib-game.ico create mode 100644 windows/templates/raylib/raylib_boom.wav create mode 100644 windows/templates/raylib/raylib_c.txt create mode 100644 windows/templates/raylib/raylib_explosion.png create mode 100644 windows/templates/rdrawing-colors/info.template create mode 100644 windows/templates/rdrawing-colors/rdrawing_colors.ico create mode 100644 windows/templates/rdrawing-colors/rdrawing_colors_c.txt create mode 100644 windows/templates/rdrawing-doraemon/info.template create mode 100644 windows/templates/rdrawing-doraemon/rdrawing-doraemon.ico create mode 100644 windows/templates/rdrawing-doraemon/rdrawing_doraemon_c.txt create mode 100644 windows/templates/rdrawing/info.template create mode 100644 windows/templates/rdrawing/rdrawing.ico create mode 100644 windows/templates/rdrawing/rdrawing_c.txt create mode 100644 windows/templates/sqlite/info.template create mode 100644 windows/templates/sqlite/sqlite.ico create mode 100644 windows/templates/sqlite/sqlite_c.txt create mode 100644 windows/templates/tcpclient/info.template create mode 100644 windows/templates/tcpclient/tcpclient.ico create mode 100644 windows/templates/tcpclient/tcpclient_c.txt create mode 100644 windows/templates/tcpserver/info.template create mode 100644 windows/templates/tcpserver/tcpserver.ico create mode 100644 windows/templates/tcpserver/tcpserver_c.txt create mode 100644 windows/templates/tinyfiledialogs/tinyfiledialogs.ico create mode 100644 windows/templates/tinyfiledialogs/tinyfiledialogs.template create mode 100644 windows/templates/tinyfiledialogs/tinyfiledialogs_c.txt diff --git a/windows/templates/1-WinApp/WinApp_c.txt b/windows/templates/1-WinApp/WinApp_c.txt new file mode 100644 index 00000000..7ed1bb93 --- /dev/null +++ b/windows/templates/1-WinApp/WinApp_c.txt @@ -0,0 +1,66 @@ +#include + +/* This is where all the input to the window goes to */ +LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { + switch(Message) { + + /* Upon destruction, tell the main thread to stop */ + case WM_DESTROY: { + PostQuitMessage(0); + break; + } + + /* All other messages (a lot of them) are processed using default procedures */ + default: + return DefWindowProc(hwnd, Message, wParam, lParam); + } + return 0; +} + +/* The 'main' function of Win32 GUI programs: this is where execution starts */ +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { + WNDCLASSEX wc; /* A properties struct of our window */ + HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */ + MSG msg; /* A temporary location for all messages */ + + /* zero out the struct and set the stuff we want to modify */ + memset(&wc,0,sizeof(wc)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.lpfnWndProc = WndProc; /* This is where we will send messages to */ + wc.hInstance = hInstance; + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + + /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */ + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wc.lpszClassName = "WindowClass"; + wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */ + wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */ + + if(!RegisterClassEx(&wc)) { + MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK); + return 0; + } + + hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, /* x */ + CW_USEDEFAULT, /* y */ + 640, /* width */ + 480, /* height */ + NULL,NULL,hInstance,NULL); + + if(hwnd == NULL) { + MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK); + return 0; + } + + /* + This is the heart of our program where all input is processed and + sent to WndProc. Note that GetMessage blocks code flow until it receives something, so + this loop will not produce unreasonably high CPU usage + */ + while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */ + TranslateMessage(&msg); /* Translate key codes to chars if present */ + DispatchMessage(&msg); /* Send it to WndProc */ + } + return msg.wParam; +} diff --git a/windows/templates/1-WinApp/Windows.ico b/windows/templates/1-WinApp/Windows.ico new file mode 100644 index 0000000000000000000000000000000000000000..b26825372ac48d8e51a3a08efc131094e5bf5638 GIT binary patch literal 4286 zcmeHJD{$LD5IrZLutvp!DKs?e7zzrS8X5|U1PE$cB6w6YC4z#U2@(`Ms3|janBjKc z*=t`Fog&F8$h4O{t?qoX;-ZMzcJ?3`D@pzYmQib{HxW<=8qcqfExJt`}!ua^zpyt7yi*BsXu%Pr)!0)%f7{r zyj@>%FTT(-mw#*wxAM31_wgfciP^PN`Nf~h-#-6RE7!W*xPLEx^a;HX;C<*q`y6Ax z@BE{$zW%rK*J(uCU~xedE+}5FDA@*-MQhT@h6>(OW-;yZl&T^lQ)&zFxAh19<^1>c z^jd#Ib+!8ghUcaRDrx}3HDc_6##|u!4PO}OW1HU>19}LZ8UpAEAi6f6&#ks$4jlz2 zxG{$EW1pNU#NP)w8`uL)hjv20Fn76q{I)oJ!QMVdJY5!CSjV}7wj&PAZPLyK{@wly zx33RwJYBr*8upIim$2LzZi(Zg@}myz8ceCf)coJ84`cW%))1Ygl}5 z@*(%|V_1Kn#qzsRc*WvegC7{8?Nj#Pdk^_x2(N3gjyn8J__*CT{nA^Pq1y=y;_^`o_oe8AU)$d+aKpO`AqDyQlEwPH*%#!X#fBK literal 0 HcmV?d00001 diff --git a/windows/templates/1-WinApp/info.template b/windows/templates/1-WinApp/info.template new file mode 100644 index 00000000..69b8b277 --- /dev/null +++ b/windows/templates/1-WinApp/info.template @@ -0,0 +1,19 @@ +[Template] +ver=2 +Name=Windows Application +Name[zh_CN]=Windows程序 +Icon=Windows.ico +Description=A standard Windows application +Description[zh_CN]=基于Windows API开发的图形界面应用程序 +Category=Basic +Category[zh_CN]=基础 + +[Unit0] +CName=main.c +CppName=main.cpp +C=winapp_c.txt +Cpp=winapp_c.txt + +[Project] +UnitCount=1 +Type=0 diff --git a/windows/templates/2-ConsoleApp/ConsoleApp_c.txt b/windows/templates/2-ConsoleApp/ConsoleApp_c.txt new file mode 100644 index 00000000..e10d74fc --- /dev/null +++ b/windows/templates/2-ConsoleApp/ConsoleApp_c.txt @@ -0,0 +1,8 @@ +#include +#include + +/* run this program using the console pauser or add your own getch, system("pause") or input loop */ + +int main(int argc, char *argv[]) { + return 0; +} \ No newline at end of file diff --git a/windows/templates/2-ConsoleApp/ConsoleApp_cpp.txt b/windows/templates/2-ConsoleApp/ConsoleApp_cpp.txt new file mode 100644 index 00000000..5627b733 --- /dev/null +++ b/windows/templates/2-ConsoleApp/ConsoleApp_cpp.txt @@ -0,0 +1,7 @@ +#include + +/* run this program using the console pauser or add your own getch, system("pause") or input loop */ + +int main(int argc, char** argv) { + return 0; +} \ No newline at end of file diff --git a/windows/templates/2-ConsoleApp/ConsoleToo.ico b/windows/templates/2-ConsoleApp/ConsoleToo.ico new file mode 100644 index 0000000000000000000000000000000000000000..4238e81ffbf396829bb934b62ed82e17319d2724 GIT binary patch literal 4286 zcmd^?A&lcl5JkOOa07!*VYg-%7-)713=9knG&D3>U}$J)YUxN|V5CEVfq|ic17}(9 zf90;k$s`%wX-+!ny!vB1cK5IP^}E`eBwzIJ+qZRNM2ru?*iSwoG}_)Uw(f#W;i}xk4B?V*L5HcawK04v>>kO zbZVSMS%y3>LS7Vs>rydQ8do>X1-j?As;cdISyuKgWAZ!?E3nGLav zH?7Fm`Liq&Um50$g|Ligt`}hj=8k#DG(MX-X1bn*X*NWr`wJ$@>vBH}<1`JW^1=_U z0sN(MSrW5ie+SDY4-4h9SoWAN6(_KG`_RSL_eyZq8>Cl0)B{2D_qrau6BX5G;1=!c~}KgeH~v_E)|U16X?8dNSFN-C;b+$l+Fh`0*e$a{jf(0E^v_zgyz>it@() z0DgMr@c#lme+YZkpBjLp_Pl5C_wWpH6KfyaB_4~#e9U(gUheE0ppJWsfB#ZTyoJx% z<32(Yy=Y??C-8mVf0N@+LHljLFL`goGllJoc-pzqAMHQl{H*7!>mfJ%|K|fOek93n ce|=L*Tg-D<+b>p1H6T|*=*c;y{@#Co>v+3i=sHiw5|T;zu{9W z^ZDG(X0y`l-bQ;Kj(W!$I8YZ|BKS`9to)p$Q*-vMh6~iG|I6Bl_sGM=U4 z(Dj-&`A^QFH+!$d)#K|v9MPg9{H5Y;ywJ$!DLfU6bS^I9N=}e7=!LFz=g&bO1mr(D z_2mybq{@BbT<$}TsTXNq@&G(?3LlwIT)ZCQNB)x+BlU!dY7u>WE!O0}<)4jkAs^td zE;h<@_1VqZa{!w?i7i~n1>Yyc4SncYmUE26y{Z1pfB#{0{A2j&Mm&s1u9`EQ6YcN& zld#c-e8B&ia)4U0o?`vvQvLzS-0)&O`WZeP&;j!?IpzSmgYEI zpZE4n29J%_qc!-&uC&dzkPd~9h36qH7Cz7ZHC^+eGPccRd4c_oB02us_$RchVgHMSvQCM_-5lQ;ViQA0DR82&{y8ESNN=M?>6ti zC;x~Yb%6i)O+PvJ6MU}o=WTH6=74WL!GW_J9$ewN_wb+n@rR2M3^;Iw*xXZ-T;$66 zyVv~2ck>%9xT^M}Cg1?aw={CkpL_DV3YTY(QFQxV|3&cDHrJj%We>7n?(ycqJ!^cv ReQ+<|ez}(q8b1p2%WsH{>30AC literal 0 HcmV?d00001 diff --git a/windows/templates/3-StaticLib/info.template b/windows/templates/3-StaticLib/info.template new file mode 100644 index 00000000..1912820f --- /dev/null +++ b/windows/templates/3-StaticLib/info.template @@ -0,0 +1,17 @@ +[Template] +ver=2 +Name=Static Library +Name[zh_CN]=静态链接库 +Icon=StaticLib.ico +Description=A static library (.a) +Description[zh_CN]=静态链接库(.a) +Category=Basic +Category[zh_CN]=基础 + +[Unit0] +CName= +CppName= + +[Project] +UnitCount=1 +Type=2 diff --git a/windows/templates/4-DLL/DLL.ico b/windows/templates/4-DLL/DLL.ico new file mode 100644 index 0000000000000000000000000000000000000000..11c8e0461aff25d79b0f4d057b98ac5c5b1f16f2 GIT binary patch literal 4286 zcmb`LA&}!n5Ji;=xMQ~{WwvJ)LqnrW2?`3D3JMB}1Pl}u6jfD-prNZ42^tEzjyY_P zZ9u9z|BW-E~u0Zfi%=@g~aO=DfxowY)@ zpcl`=;X2~wx9~q52amt2bDKw-_6ttm5ox0F^(TT3e>FPvYBdkIq~JT}eQ-~I@Toi6 zw{4@m&*r~K&w^u6VM-f`Hss-g3N=RKDT4wrSH2348c^Nai{{r2jut>zMam#ROQ z6HZa2YhTw}xl@6jIda%pFI-~8|2v0H`gfBbL+)T7RM&x-tJ+qo+r#2P9@=_*Gzqz* zedzD8^5b9pKFDh!e}6pl81=7IS0_Dd>Py{q4j$P3p!G>d0u7cc)j>yB=sC@B@ag?q z{tG=f=$S?y?01d0XueN%0E_;O)#r)ooTah%^FcXx`ps@QSTF2c&n%V;-$Tscv5z~; z#D$=@m{;I{Isb6&=Z^Z|(5n^`eycju8|0R`(iV$_rSkKj>+aB7C+*-6@X{_O z*i*toC!VjA+g7~|4`%nZdB9rB+zt46Y|m`aTI7_|Rvh5b3b&zeMmuPVx#-ixWItC6DPHb1$IV>8O0v3;3{WRR?hgdmfee*906Ca2RVb zSgY$o@1`&53%nWp5q!%1jb=DH1bqDIb)grgUTiAqDBUW}2j0iKOYwId(Rp3q;kAIv zq=)AsY`lSfM9+GvT!=*dK^^dBz-K=AJwtyv3+OwinZlY!y-TePV~jkg&8Wqt9-}5> zZK%)4L2H|yCwH`;uSaKm`RbrN1|3-gkD9}+bSPDKaI(6xT$&WxYrw-vj|wejder+- z6F8iCNDFj{H4o{h&;ucVj&R_6bfJHkjqHP%C-BZxx2+;mJ@Sc1;4s!?;({jPfIre) zp4ZyOta9QTPwT<8wP4OAoWsQ_SMU<;by8Q1eK6yJ7D10!f3y}e2UTZgEWO2y822{s z+lRq{J#Z<#H+omB_0e>Iu(bs>@bdRpJol%)h~$bKv*9zr|CYM`=s#DVTF` zBR8IDnGw zk2DLJEqMDqSofZR$6mDzb>*Gxu^Z`+PpHwH!%AAM#34L?@7>>XkJ;YKW6VadH(7f2 zX{_E`ESKh_&41DU9(T68p6Z+je9%t7&jiRqpJn0zX ftNxdR0Dqj~QO8gA^y?@4rlUoVV?2E^`}XB8wMT{8 literal 0 HcmV?d00001 diff --git a/windows/templates/4-DLL/Dll_c.txt b/windows/templates/4-DLL/Dll_c.txt new file mode 100644 index 00000000..10b41500 --- /dev/null +++ b/windows/templates/4-DLL/Dll_c.txt @@ -0,0 +1,34 @@ +/* Replace "dll.h" with the name of your header */ +#include "dll.h" +#include + +DLLIMPORT void HelloWorld() +{ + MessageBox(0,"Hello World from DLL!\n","Hi",MB_ICONINFORMATION); +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) +{ + switch(fdwReason) + { + case DLL_PROCESS_ATTACH: + { + break; + } + case DLL_PROCESS_DETACH: + { + break; + } + case DLL_THREAD_ATTACH: + { + break; + } + case DLL_THREAD_DETACH: + { + break; + } + } + + /* Return TRUE on success, FALSE on failure */ + return TRUE; +} diff --git a/windows/templates/4-DLL/Dll_cpp.txt b/windows/templates/4-DLL/Dll_cpp.txt new file mode 100644 index 00000000..9ff2a678 --- /dev/null +++ b/windows/templates/4-DLL/Dll_cpp.txt @@ -0,0 +1,44 @@ +/* Replace "dll.h" with the name of your header */ +#include "dll.h" +#include + +DllClass::DllClass() +{ + +} + +DllClass::~DllClass() +{ + +} + +void DllClass::HelloWorld() +{ + MessageBox(0, "Hello World from DLL!\n","Hi",MB_ICONINFORMATION); +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) +{ + switch(fdwReason) + { + case DLL_PROCESS_ATTACH: + { + break; + } + case DLL_PROCESS_DETACH: + { + break; + } + case DLL_THREAD_ATTACH: + { + break; + } + case DLL_THREAD_DETACH: + { + break; + } + } + + /* Return TRUE on success, FALSE on failure */ + return TRUE; +} diff --git a/windows/templates/4-DLL/Dll_h.txt b/windows/templates/4-DLL/Dll_h.txt new file mode 100644 index 00000000..394eb826 --- /dev/null +++ b/windows/templates/4-DLL/Dll_h.txt @@ -0,0 +1,12 @@ +#ifndef _DLL_H_ +#define _DLL_H_ + +#if BUILDING_DLL +#define DLLIMPORT __declspec(dllexport) +#else +#define DLLIMPORT __declspec(dllimport) +#endif + +DLLIMPORT void HelloWorld(); + +#endif diff --git a/windows/templates/4-DLL/Dll_hpp.txt b/windows/templates/4-DLL/Dll_hpp.txt new file mode 100644 index 00000000..e2f2084a --- /dev/null +++ b/windows/templates/4-DLL/Dll_hpp.txt @@ -0,0 +1,18 @@ +#ifndef _DLL_H_ +#define _DLL_H_ + +#if BUILDING_DLL +#define DLLIMPORT __declspec(dllexport) +#else +#define DLLIMPORT __declspec(dllimport) +#endif + +class DLLIMPORT DllClass +{ + public: + DllClass(); + virtual ~DllClass(); + void HelloWorld(); +}; + +#endif diff --git a/windows/templates/4-DLL/info.template b/windows/templates/4-DLL/info.template new file mode 100644 index 00000000..be9d32fa --- /dev/null +++ b/windows/templates/4-DLL/info.template @@ -0,0 +1,28 @@ +[Template] +ver=2 +Name=DLL +Name[zh_CN]=动态链接库 +Icon=DLL.ico +Description=A Dynamic Link Library (DLL) +Description[zh_CN]=动态链接库(DLL) +Category=Basic +Category[zh_CN]=基础 + +[Unit0] +CName=dllmain.c +CppName=dllmain.cpp +C=DLL_c.txt +Cpp=Dll_cpp.txt + +[Unit1] +CName=dll.h +CppName=dll.h +C=DLL_h.txt +Cpp=Dll_hpp.txt + +[Project] +UnitCount=2 +Type=3 + +Compiler=-DBUILDING_DLL=1 +CppCompiler=-DBUILDING_DLL=1 \ No newline at end of file diff --git a/windows/templates/FileEditor/Editor.ico b/windows/templates/FileEditor/Editor.ico new file mode 100644 index 0000000000000000000000000000000000000000..f58b11a8711a00a32d6e4b7207edbe5401ff1001 GIT binary patch literal 1126 zcmbVLv1$V`3{`rC-cWEpAyerX=m#Xw&?%piAw$5~?4gis{*^+1z(dAEIvCUo(L~_ zUkp}kDaHsZ4%U~LWe3G0N3#4P`$5#%TD!AFwsO!qx6MTq@30R}#d`Py;);r_d;C3O z=-|lJ3x0PuWp=Kxfz#~SAm)I%dz-@VG#dQb^#qA7eA6TnLXQ!e4icfqIlG6KIS7@X z%;ic5Uwl?V<=gBwAWSQtk})7uELZ2()d6kN{EGP@E~W(|p9SIia9?mrhS(rQA=KI+ zf)XlL0xBIc@@oVTP~4CtKP8q+24@F8Z&opI9&o0`Jn*($2Wvw5HrL)+Z4M2c*ze_b z9LZn`nh%Vb=sV87slom~dWG*A=*UZwpE3rVc_J6fRQ~k#NakON6KI`(kNxlBG5hdf z*41Fe_K)+wlR}|jd_w8guq>sbw&N^=)AHTSs_mX+aNu7Wu_-;qf_aHMwCL4iB-%?G xmeiimeY1%{qVjqXq+1y@?E}%NL7zs +#include "main.h" + +BOOL LoadFile(HWND hEdit, LPSTR pszFileName) { + HANDLE hFile; + BOOL bSuccess = FALSE; + + hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); + if(hFile != INVALID_HANDLE_VALUE) { + DWORD dwFileSize; + dwFileSize = GetFileSize(hFile, NULL); + if(dwFileSize != 0xFFFFFFFF) { + LPSTR pszFileText; + pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1); + if(pszFileText != NULL) { + DWORD dwRead; + if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL)) { + pszFileText[dwFileSize] = 0; // Null terminator + if(SetWindowText(hEdit, pszFileText)) + bSuccess = TRUE; // It worked! + } + GlobalFree(pszFileText); + } + } + CloseHandle(hFile); + } + return bSuccess; +} + +BOOL SaveFile(HWND hEdit, LPSTR pszFileName) { + HANDLE hFile; + BOOL bSuccess = FALSE; + + hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + if(hFile != INVALID_HANDLE_VALUE) { + DWORD dwTextLength; + dwTextLength = GetWindowTextLength(hEdit); + if(dwTextLength > 0) { + LPSTR pszText; + pszText = (LPSTR)GlobalAlloc(GPTR, dwTextLength + 1); + if(pszText != NULL) { + if(GetWindowText(hEdit, pszText, dwTextLength + 1)) { + DWORD dwWritten; + if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL)) + bSuccess = TRUE; + } + GlobalFree(pszText); + } + } + CloseHandle(hFile); + } + return bSuccess; +} + +BOOL DoFileOpenSave(HWND hwnd, BOOL bSave) { + OPENFILENAME ofn; + char szFileName[MAX_PATH]; + + ZeroMemory(&ofn, sizeof(ofn)); + szFileName[0] = 0; + + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hwnd; + ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0"; + ofn.lpstrFile = szFileName; + ofn.nMaxFile = MAX_PATH; + ofn.lpstrDefExt = "txt"; + + if(bSave) { + ofn.Flags = OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT; + if(GetSaveFileName(&ofn)) { + if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName)) { + MessageBox(hwnd, "Save file failed.", "Error",MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + } + } else { + ofn.Flags = OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY; + if(GetOpenFileName(&ofn)) { + if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName)) { + MessageBox(hwnd, "Load of file failed.", "Error",MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + } + } + return TRUE; +} + +LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { + switch(Message) { + case WM_CREATE: + CreateWindow("EDIT", "",WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_MULTILINE|ES_WANTRETURN,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,hwnd, (HMENU)IDC_MAIN_TEXT, GetModuleHandle(NULL), NULL); + SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE,0)); + break; + case WM_SIZE: + if(wParam != SIZE_MINIMIZED) + MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam),HIWORD(lParam), TRUE); + break; + case WM_SETFOCUS: + SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT)); + break; + case WM_COMMAND: + switch(LOWORD(wParam)) { + case CM_FILE_OPEN: + DoFileOpenSave(hwnd, FALSE); + break; + case CM_FILE_SAVEAS: + DoFileOpenSave(hwnd, TRUE); + break; + case CM_FILE_EXIT: + PostMessage(hwnd, WM_CLOSE, 0, 0); + break; + case CM_ABOUT: + MessageBox (NULL, "File Editor for Windows!\nCreated using the Win32 API" , "About...", 0); + break; + } + break; + case WM_CLOSE: + DestroyWindow(hwnd); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hwnd, Message, wParam, lParam); + } + return 0; +} + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow) { + WNDCLASSEX wc; + HWND hwnd; + MSG Msg; + + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = 0; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wc.lpszMenuName = "MAINMENU"; + wc.lpszClassName = "WindowClass"; + wc.hIconSm = LoadIcon(hInstance,"A"); /* A is name used by project icons */ + + if(!RegisterClassEx(&wc)) { + MessageBox(0,"Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK|MB_SYSTEMMODAL); + return 0; + } + + hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","File Editor Example Program",WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, + CW_USEDEFAULT, + 320,240, + NULL, NULL, hInstance, NULL); + + if(hwnd == NULL) { + MessageBox(0, "Window Creation Failed!", "Error!",MB_ICONEXCLAMATION|MB_OK|MB_SYSTEMMODAL); + return 0; + } + + ShowWindow(hwnd,1); + UpdateWindow(hwnd); + + while(GetMessage(&Msg, NULL, 0, 0) > 0) { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } + return Msg.wParam; +} diff --git a/windows/templates/FileEditor/FileEditor_h.txt b/windows/templates/FileEditor/FileEditor_h.txt new file mode 100644 index 00000000..de62f0d0 --- /dev/null +++ b/windows/templates/FileEditor/FileEditor_h.txt @@ -0,0 +1,6 @@ +#define CM_FILE_SAVEAS 9072 +#define CM_FILE_EXIT 9071 +#define CM_FILE_OPEN 9070 +#define CM_ABOUT 9069 + +#define IDC_MAIN_TEXT 1001 diff --git a/windows/templates/FileEditor/FileEditor_rc.txt b/windows/templates/FileEditor/FileEditor_rc.txt new file mode 100644 index 00000000..98abdae6 --- /dev/null +++ b/windows/templates/FileEditor/FileEditor_rc.txt @@ -0,0 +1,18 @@ +#include "main.h" + +MAINMENU MENU +{ + POPUP "&File" + { + MENUITEM "&Open...", CM_FILE_OPEN + MENUITEM "Save &As...", CM_FILE_SAVEAS + MENUITEM SEPARATOR + MENUITEM "E&xit", CM_FILE_EXIT + } + + POPUP "&Help" + { + MENUITEM "&About", CM_ABOUT + } +} + diff --git a/windows/templates/FileEditor/info.template b/windows/templates/FileEditor/info.template new file mode 100644 index 00000000..e7d5a136 --- /dev/null +++ b/windows/templates/FileEditor/info.template @@ -0,0 +1,31 @@ +[Template] +ver=2 +Name=File Editor +Name[zh_CN]=文件编辑器 +Icon=Editor.ico +Description=A simple Win32 file editor +Description[zh_CN]=一个简单的Win32文件编辑器 +Category=Win32 + +[Unit0] +CName=main.c +CppName=main.cpp +C=FileEditor_c.txt +Cpp=FileEditor_c.txt + +[Unit1] +CName=main.h +CppName=main.h +C=FileEditor_h.txt +Cpp=FileEditor_h.txt + +[Unit2] +CName=resource.rc +CppName=resource.rc +C=FileEditor_rc.txt +Cpp=FileEditor_rc.txt + +[Project] +UnitCount=3 +Type=0 +Icon=Editor.ico diff --git a/windows/templates/GLFW/GLFW.ico b/windows/templates/GLFW/GLFW.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a515ce71acd53202fab695014503a89c3c5e493 GIT binary patch literal 4286 zcmeHLYfx0@89vBGuT2!Y%>}xC#pFm8)Fj4!iL5J!e_FjIooM{z!i0W6qv) zzVm(W^SsadzTfu^3=>6vEX#1e%=t8i5i<;9qKmqi?R0Vde4}rI#LyM$U>JPP+w$@< z{@?3!?&2eQoS(s95cBi%n4X@-`1m-6hKAtt`Ow$bhwkofIGs*791h&NbqjX89ZgM5 zu-R<skM)J~a@D|ymnG6O5Lo)u{&M3ZaUV|3 z;=zMCOiwL@tP&-T2Mv4l&OHQ)>+F00Q`7Slw;7C%O;NmOR|bI}&&~T^Eo^gXX$hCF zv|;bwcd@as429-%c)GA0`(M6Bc{RkF2-_MSnZgS%p2W`Gzs6U0>__p|-=L`IFbZ-{ zV^cvnzQ5;vl$F`BK>5tIRowZW&=030*M>(Xuy0=}L>aF@E_ws3;v_VgB~XehkrrPG zgW@Vq9q+=_WJr&;7B{5Q15l_AK+XOfYWX3kB&VPfRzfMb3Q6*NNMBcmo!hVCW6J;` zg!CmBAGNUG+_zodIs$?4Wth!}VKn|8TKPLrCfcA_*A6zx0cAonQkXhyHrmnJJWaXo zhFtO%vJJSP;aOh0MR0|{|RWbV-AfH;PD&^&d54SGR{ z!*gG8P@WU`f5qqdgmtJW?MJr!Ce|?bv3rXLf3F;bQB#4;^vjUPw?Mg$I3zVvZ0t~_ zUIQzSTuOA%6sUr`uZG#1pm!A=jE4#oKo zC+i_hdlOk1bx^Hsr#Nu&tH(=wyB~uO*Fo2vhdB186_YcQsQLE@3N`iEoLz%w)?2VG z*NXL-EzqVnpg=|ahL2ICy@m~@Hf+pxK%3Ew13&AgTIwf_7jWi}_mLi7jx6~V$|K^P z&_)_H;+va0R^f-SN2sR1vE>?)qi7EM7sxZppp=$iYjG)_DgGO_dbtn6_`4`Q zJ;K|zTpxohwgd8LC(Y@kx^PnLoD}~SeD7mTOu&kv~Xge8Pq3r*TE+3$xUZV-~F zek4$SB~V^I`=uUa%Pf=wRZu53kiK4+wfzvpcyO_N0&dqRa#f8GMKx0`HdFoBkQsfC zYN3njq8$f+{AxRdq?1nMCmlRcCAwkE@LEA!*)#kDZ9?@+zG3%#NeI$1e!XrcOaLrLqCh-%YndC233 z^Zmq$I^^da$J3imVne}O*!QTZrmN}*wo!k|4t?`OcKQmsb&!P0t?%=F;-9d6zRSN_~y%e7zp^g7a# zjzg#ZGgQ*EP>U-l2QEmHjxp1pe|THd>!AKo(cc+sNNa{uKFP$|Vk*uB;mx zxrg=zFVe}6BZuze+q=(_X0L%&)xx}K1o~Y1Zt_B-rL~**D#TuhQ#j5ps$2I;%(*ir z@BXTv<>eqQR5-9@<9TSc-N-I*!L+^?IXQ0RntjMM`H^Svp~&b#c4jx)Tc&A#07s90 zgza1HbOsp4v)}P!&v*TJeh*#G`S9Zxy*RLc7!_r7_L~ZUhW%azPA|(V=dJPaSv21q zr~P#T9j#Ni=bVM>-U58C00#X5JQ!Z2_|IWskrw8awlEjK{7jJ6YVI7ts!md>RG9{|ET2?*9QuT;ad~ literal 0 HcmV?d00001 diff --git a/windows/templates/GLFW/GLFW_main.cpp.txt b/windows/templates/GLFW/GLFW_main.cpp.txt new file mode 100644 index 00000000..3d5cfdae --- /dev/null +++ b/windows/templates/GLFW/GLFW_main.cpp.txt @@ -0,0 +1,111 @@ +#include +// GLEW +#define GLEW_STATIC +#include +// GLFW +#include +// Other includes +#include "shader.h" + +// Function prototypes +void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode); + +// Window dimensions +const GLuint WIDTH = 800, HEIGHT = 600; + +// The MAIN function, from here we start the application and run the game loop +int main() +{ + // Init GLFW + glfwInit(); + // Set all the required options for GLFW + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); + + // Create a GLFWwindow object that we can use for GLFW's functions + GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "LearnOpenGL", nullptr, nullptr); + glfwMakeContextCurrent(window); + + // Set the required callback functions + glfwSetKeyCallback(window, key_callback); + + // Set this to true so GLEW knows to use a modern approach to retrieving function pointers and extensions + glewExperimental = GL_TRUE; + // Initialize GLEW to setup the OpenGL Function pointers + glewInit(); + + // Define the viewport dimensions + glViewport(0, 0, WIDTH, HEIGHT); + + + //ȡshaderļ룬shader.h + Shader ourShader("shader.vs", "shader.frag"); + + + // һά飬ÿһԣǰλԣɫ + GLfloat vertices[] = { + // Positions // Colors + 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, // Bottom Right + -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, // Bottom Left + 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f // Top + }; + GLuint VBO, VAO;//㻺壬ڹ + glGenVertexArrays(1, &VAO);//飬һһ޶ʶ + glGenBuffers(1, &VBO);//㻺壬һһ޶ʶ + + glBindVertexArray(VAO);//󶨶 + glBindBuffer(GL_ARRAY_BUFFER, VBO);//󶨶㻺 + //ָԴΪverticesĸԿιݣGL_STATIC_DRWAı + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + + // ָԵĽʽδӶ㻺ȡӦĶԺӦɫԡ˵ɫ֪ȥĸԷɫ + //ÿһԣ2֣һλԣɫԣÿһλúɫ + + //ɫʹlayout(location = 0)positionԵλֵ(Location)˵һԷ + //λԵάȣͣ:Ƿ׼壬λԵֽڳȣڻеƫʼλ + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(GLfloat), (GLvoid*)0); + glEnableVertexAttribArray(0);//0ΪĬǽõ + + // һӦɫеlayout (location = 1) in vec3 color;˵ɫԵƫverticesһ + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(GLfloat), (GLvoid*)(3 * sizeof(GLfloat))); + glEnableVertexAttribArray(1);//1. + + //(Vertex Array Object, VAO)ĺôǣöָʱֻҪĴִһΣ֮ٻʱֻҪӦVAOˡѭеİٽ + glBindVertexArray(0); // VAO + // Game loop + while (!glfwWindowShouldClose(window)) + { + // ¼ӦĻصĵkey_callback + glfwPollEvents(); + + // Render + // Clear the colorbuffer + glClearColor(0.2f, 0.3f, 0.3f, 1.0f);//Ⱦɫ̨ + glClear(GL_COLOR_BUFFER_BIT);//ǰ̨ + + // Draw the triangle + ourShader.Use();//ɫ + glBindVertexArray(VAO);//ÿѭã󶨺VAO + glDrawArrays(GL_TRIANGLES, 0, 3); + glBindVertexArray(0);// + + // Swap the screen buffers + glfwSwapBuffers(window); + } + // Properly de-allocate all resources once they've outlived their purpose + glDeleteVertexArrays(1, &VAO); + glDeleteBuffers(1, &VBO); + // Terminate GLFW, clearing any resources allocated by GLFW. + glfwTerminate(); + return 0; +} + + +// Is called whenever a key is pressed/released via GLFW +void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode) +{ + if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) + glfwSetWindowShouldClose(window, GL_TRUE); +} diff --git a/windows/templates/GLFW/GLFW_shader.frag.txt b/windows/templates/GLFW/GLFW_shader.frag.txt new file mode 100644 index 00000000..00bbbd11 --- /dev/null +++ b/windows/templates/GLFW/GLFW_shader.frag.txt @@ -0,0 +1,8 @@ +#version 330 core +in vec3 ourColor; +out vec4 color; + +void main() +{ + color = vec4(ourColor, 1.0f); +} diff --git a/windows/templates/GLFW/GLFW_shader.h.txt b/windows/templates/GLFW/GLFW_shader.h.txt new file mode 100644 index 00000000..01387630 --- /dev/null +++ b/windows/templates/GLFW/GLFW_shader.h.txt @@ -0,0 +1,98 @@ +#ifndef SHADER_H +#define SHADER_H + +#include +#include +#include +#include + +#include + +class Shader +{ +public: + GLuint Program; + // Constructor generates the shader on the fly + Shader(const GLchar* vertexPath, const GLchar* fragmentPath) + { + // 1. Retrieve the vertex/fragment source code from filePath + std::string vertexCode; + std::string fragmentCode; + std::ifstream vShaderFile; + std::ifstream fShaderFile; + // ensures ifstream objects can throw exceptions: + vShaderFile.exceptions(std::ifstream::badbit); + fShaderFile.exceptions(std::ifstream::badbit); + try + { + // Open files + vShaderFile.open(vertexPath); + fShaderFile.open(fragmentPath); + std::stringstream vShaderStream, fShaderStream; + // Read file's buffer contents into streams + vShaderStream << vShaderFile.rdbuf(); + fShaderStream << fShaderFile.rdbuf(); + // close file handlers + vShaderFile.close(); + fShaderFile.close(); + // Convert stream into string + vertexCode = vShaderStream.str(); + fragmentCode = fShaderStream.str(); + } + catch (std::ifstream::failure e) + { + std::cout << "ERROR::SHADER::FILE_NOT_SUCCESFULLY_READ" << std::endl; + } + const GLchar* vShaderCode = vertexCode.c_str(); + const GLchar * fShaderCode = fragmentCode.c_str(); + // 2. Compile shaders + GLuint vertex, fragment; + GLint success; + GLchar infoLog[512]; + // Vertex Shader + vertex = glCreateShader(GL_VERTEX_SHADER);//ɫ + glShaderSource(vertex, 1, &vShaderCode, NULL);//ָԴ + glCompileShader(vertex);//ɫ + // Print compile errors if any + glGetShaderiv(vertex, GL_COMPILE_STATUS, &success);//鿴Ƿɹ + if (!success) + { + glGetShaderInfoLog(vertex, 512, NULL, infoLog); + std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << std::endl; + } + // Fragment Shader + fragment = glCreateShader(GL_FRAGMENT_SHADER);//Ƭɫ + glShaderSource(fragment, 1, &fShaderCode, NULL); + glCompileShader(fragment); + // Print compile errors if any + glGetShaderiv(fragment, GL_COMPILE_STATUS, &success); + if (!success) + { + glGetShaderInfoLog(fragment, 512, NULL, infoLog); + std::cout << "ERROR::SHADER::FRAGMENT::COMPILATION_FAILED\n" << infoLog << std::endl; + } + // Shader Program + this->Program = glCreateProgram();//ɫ + glAttachShader(this->Program, vertex);//ɫ + glAttachShader(this->Program, fragment);//Ƭɫ + glLinkProgram(this->Program);//ӱ + // Print linking errors if any + glGetProgramiv(this->Program, GL_LINK_STATUS, &success); + if (!success) + { + glGetProgramInfoLog(this->Program, 512, NULL, infoLog); + std::cout << "ERROR::SHADER::PROGRAM::LINKING_FAILED\n" << infoLog << std::endl; + } + // Delete the shaders as they're linked into our program now and no longer necessery + glDeleteShader(vertex); + glDeleteShader(fragment); + + } + // Uses the current shader + void Use() + { + glUseProgram(this->Program); + } +}; + +#endif diff --git a/windows/templates/GLFW/GLFW_shader.vs.txt b/windows/templates/GLFW/GLFW_shader.vs.txt new file mode 100644 index 00000000..b2141e1b --- /dev/null +++ b/windows/templates/GLFW/GLFW_shader.vs.txt @@ -0,0 +1,11 @@ +#version 330 core +layout (location = 0) in vec3 position;//in locationĶйء +layout (location = 1) in vec3 color; + +out vec3 ourColor;//out 3άΪƬɫ룬 + +void main() +{ + gl_Position = vec4(position, 1.0f); + ourColor = color; +} diff --git a/windows/templates/GLFW/info.template b/windows/templates/GLFW/info.template new file mode 100644 index 00000000..e577055e --- /dev/null +++ b/windows/templates/GLFW/info.template @@ -0,0 +1,39 @@ +[Template] +ver=2 +Name=GLFW +Description=A simple GLFW program +Description[zh_CN]=一个简单的GLFW程序 +Icon=GLFW.ico +Category=3D +Category[zh_CN]=3D + +[Unit0] +CppName=main.cpp +Cpp=GLFW_main.cpp.txt + +[Unit1] +CppName=shader.h +Cpp=GLFW_shader.h.txt + +[Unit2] +CppName=shader.frag +Cpp=GLFW_shader.frag.txt + +[Unit3] +CppName=shader.vs +Cpp=GLFW_shader.vs.txt + +[Project] +UnitCount=4 +Type=1 +IsCpp=1 +Compiler= +CppCompiler= +Linker=-lglfw3 -lglew32 -lopengl32 -lwinmm -lgdi32_@@__@@_ +CompilerSettings=0000000000110000000001000 +CompilerSet=1 +UseUTF8=0 +StaticLink=1 +AddCharset=1 +IncludeVersionInfo=0 +SupportXPThemes=0 diff --git a/windows/templates/GLUT/CL_GLUT.ico b/windows/templates/GLUT/CL_GLUT.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a515ce71acd53202fab695014503a89c3c5e493 GIT binary patch literal 4286 zcmeHLYfx0@89vBGuT2!Y%>}xC#pFm8)Fj4!iL5J!e_FjIooM{z!i0W6qv) zzVm(W^SsadzTfu^3=>6vEX#1e%=t8i5i<;9qKmqi?R0Vde4}rI#LyM$U>JPP+w$@< z{@?3!?&2eQoS(s95cBi%n4X@-`1m-6hKAtt`Ow$bhwkofIGs*791h&NbqjX89ZgM5 zu-R<skM)J~a@D|ymnG6O5Lo)u{&M3ZaUV|3 z;=zMCOiwL@tP&-T2Mv4l&OHQ)>+F00Q`7Slw;7C%O;NmOR|bI}&&~T^Eo^gXX$hCF zv|;bwcd@as429-%c)GA0`(M6Bc{RkF2-_MSnZgS%p2W`Gzs6U0>__p|-=L`IFbZ-{ zV^cvnzQ5;vl$F`BK>5tIRowZW&=030*M>(Xuy0=}L>aF@E_ws3;v_VgB~XehkrrPG zgW@Vq9q+=_WJr&;7B{5Q15l_AK+XOfYWX3kB&VPfRzfMb3Q6*NNMBcmo!hVCW6J;` zg!CmBAGNUG+_zodIs$?4Wth!}VKn|8TKPLrCfcA_*A6zx0cAonQkXhyHrmnJJWaXo zhFtO%vJJSP;aOh0MR0|{|RWbV-AfH;PD&^&d54SGR{ z!*gG8P@WU`f5qqdgmtJW?MJr!Ce|?bv3rXLf3F;bQB#4;^vjUPw?Mg$I3zVvZ0t~_ zUIQzSTuOA%6sUr`uZG#1pm!A=jE4#oKo zC+i_hdlOk1bx^Hsr#Nu&tH(=wyB~uO*Fo2vhdB186_YcQsQLE@3N`iEoLz%w)?2VG z*NXL-EzqVnpg=|ahL2ICy@m~@Hf+pxK%3Ew13&AgTIwf_7jWi}_mLi7jx6~V$|K^P z&_)_H;+va0R^f-SN2sR1vE>?)qi7EM7sxZppp=$iYjG)_DgGO_dbtn6_`4`Q zJ;K|zTpxohwgd8LC(Y@kx^PnLoD}~SeD7mTOu&kv~Xge8Pq3r*TE+3$xUZV-~F zek4$SB~V^I`=uUa%Pf=wRZu53kiK4+wfzvpcyO_N0&dqRa#f8GMKx0`HdFoBkQsfC zYN3njq8$f+{AxRdq?1nMCmlRcCAwkE@LEA!*)#kDZ9?@+zG3%#NeI$1e!XrcOaLrLqCh-%YndC233 z^Zmq$I^^da$J3imVne}O*!QTZrmN}*wo!k|4t?`OcKQmsb&!P0t?%=F;-9d6zRSN_~y%e7zp^g7a# zjzg#ZGgQ*EP>U-l2QEmHjxp1pe|THd>!AKo(cc+sNNa{uKFP$|Vk*uB;mx zxrg=zFVe}6BZuze+q=(_X0L%&)xx}K1o~Y1Zt_B-rL~**D#TuhQ#j5ps$2I;%(*ir z@BXTv<>eqQR5-9@<9TSc-N-I*!L+^?IXQ0RntjMM`H^Svp~&b#c4jx)Tc&A#07s90 zgza1HbOsp4v)}P!&v*TJeh*#G`S9Zxy*RLc7!_r7_L~ZUhW%azPA|(V=dJPaSv21q zr~P#T9j#Ni=bVM>-U58C00#X5JQ!Z2_|IWskrw8awlEjK{7jJ6YVI7ts!md>RG9{|ET2?*9QuT;ad~ literal 0 HcmV?d00001 diff --git a/windows/templates/GLUT/CL_GLUT_glmatrix.c.txt b/windows/templates/GLUT/CL_GLUT_glmatrix.c.txt new file mode 100644 index 00000000..b3dad22d --- /dev/null +++ b/windows/templates/GLUT/CL_GLUT_glmatrix.c.txt @@ -0,0 +1,219 @@ +#include +#define _USE_MATH_DEFINES +#include +#include "glmatrix.h" + +#ifndef M_PI +#define M_PI 3.141592653589793 +#endif + +#define MMODE_IDX(x) ((x) - GL_MODELVIEW) +#define MAT_STACK_SIZE 32 +#define MAT_IDENT {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1} + +static int mm_idx = 0; +static float mat_stack[3][MAT_STACK_SIZE][16] = {{MAT_IDENT}, {MAT_IDENT}, {MAT_IDENT}}; +static int stack_top[3]; + +void gl_matrix_mode(int mm) +{ + mm_idx = MMODE_IDX(mm); +} + +void gl_push_matrix(void) +{ + int top = stack_top[mm_idx]; + + memcpy(mat_stack[mm_idx][top + 1], mat_stack[mm_idx][top], 16 * sizeof(float)); + stack_top[mm_idx]++; +} + +void gl_pop_matrix(void) +{ + stack_top[mm_idx]--; +} + +void gl_load_identity(void) +{ + static const float idmat[] = MAT_IDENT; + int top = stack_top[mm_idx]; + float *mat = mat_stack[mm_idx][top]; + + memcpy(mat, idmat, sizeof idmat); +} + +void gl_load_matrixf(const float *m) +{ + int top = stack_top[mm_idx]; + float *mat = mat_stack[mm_idx][top]; + + memcpy(mat, m, 16 * sizeof *mat); +} + +#define M4(i, j) ((i << 2) + j) + +void gl_mult_matrixf(const float *m2) +{ + int i, j; + int top = stack_top[mm_idx]; + float *m1 = mat_stack[mm_idx][top]; + float res[16]; + + for(i=0; i<4; i++) { + for(j=0; j<4; j++) { + res[M4(i,j)] = m1[M4(i,0)] * m2[M4(0,j)] + + m1[M4(i,1)] * m2[M4(1,j)] + + m1[M4(i,2)] * m2[M4(2,j)] + + m1[M4(i,3)] * m2[M4(3,j)]; + } + } + + memcpy(m1, res, sizeof res); +} + +void gl_translatef(float x, float y, float z) +{ + float mat[] = MAT_IDENT; + + mat[12] = x; + mat[13] = y; + mat[14] = z; + + gl_mult_matrixf(mat); +} + +void gl_rotatef(float angle, float x, float y, float z) +{ + float mat[] = MAT_IDENT; + + float angle_rad = (float)M_PI * angle / 180.f; + float sina = (float)sin(angle_rad); + float cosa = (float)cos(angle_rad); + float one_minus_cosa = 1.f - cosa; + float nxsq = x * x; + float nysq = y * y; + float nzsq = z * z; + + mat[0] = nxsq + (1.f - nxsq) * cosa; + mat[4] = x * y * one_minus_cosa - z * sina; + mat[8] = x * z * one_minus_cosa + y * sina; + mat[1] = x * y * one_minus_cosa + z * sina; + mat[5] = nysq + (1.f - nysq) * cosa; + mat[9] = y * z * one_minus_cosa - x * sina; + mat[2] = x * z * one_minus_cosa - y * sina; + mat[6] = y * z * one_minus_cosa + x * sina; + mat[10] = nzsq + (1.f - nzsq) * cosa; + + gl_mult_matrixf(mat); +} + +void gl_scalef(float x, float y, float z) +{ + float mat[] = MAT_IDENT; + + mat[0] = x; + mat[5] = y; + mat[10] = z; + + gl_mult_matrixf(mat); +} + +void gl_ortho(float left, float right, float bottom, float top, float znear, float zfar) +{ + float mat[] = MAT_IDENT; + + float dx = right - left; + float dy = top - bottom; + float dz = zfar - znear; + + float tx = -(right + left) / dx; + float ty = -(top + bottom) / dy; + float tz = -(zfar + znear) / dz; + + float sx = 2.f / dx; + float sy = 2.f / dy; + float sz = -2.f / dz; + + mat[0] = sx; + mat[5] = sy; + mat[10] = sz; + mat[12] = tx; + mat[13] = ty; + mat[14] = tz; + + gl_mult_matrixf(mat); +} + +void gl_frustum(float left, float right, float bottom, float top, float znear, float zfar) +{ + float mat[] = MAT_IDENT; + + float dx = right - left; + float dy = top - bottom; + float dz = zfar - znear; + + float a = (right + left) / dx; + float b = (top + bottom) / dy; + float c = -(zfar + znear) / dz; + float d = -2.f * zfar * znear / dz; + + mat[0] = 2.f * znear / dx; + mat[5] = 2.f * znear / dy; + mat[8] = a; + mat[9] = b; + mat[10] = c; + mat[11] = -1.f; + mat[14] = d; + mat[15] = 0; + + gl_mult_matrixf(mat); +} + +void glu_perspective(float vfov, float aspect, float znear, float zfar) +{ + float vfov_rad = (float)M_PI * vfov / 180.f; + float x = znear * (float)tan(vfov_rad / 2.f); + gl_frustum(-aspect * x, aspect * x, -x, x, znear, zfar); +} + +/* return the matrix (16 elements, 4x4 matrix, row-major order */ +float* get_matrix(int mm) +{ + int idx = MMODE_IDX(mm); + int top = stack_top[idx]; + return mat_stack[idx][top]; +} + + +#define M3(i, j) ((i * 3) + j) +static float inv_transpose_result[9]; + +/* return the inverse transpose of the left-upper 3x3 of a matrix + The returned pointer is only valid until the next time this function is + called, so make a deep copy when you want to keep it around. + */ +float* get_inv_transpose_3x3(int mm) +{ + int idx = MMODE_IDX(mm); + int top = stack_top[idx]; + float *m1 = mat_stack[idx][top]; + + + float determinant = +m1[M4(0,0)]*(m1[M4(1,1)]*m1[M4(2,2)]-m1[M4(2,1)]*m1[M4(1,2)]) + -m1[M4(0,1)]*(m1[M4(1,0)]*m1[M4(2,2)]-m1[M4(1,2)]*m1[M4(2,0)]) + +m1[M4(0,2)]*(m1[M4(1,0)]*m1[M4(2,1)]-m1[M4(1,1)]*m1[M4(2,0)]); + + float invdet = 1/determinant; + + inv_transpose_result[M3(0,0)] = (m1[M4(1,1)]*m1[M4(2,2)]-m1[M4(2,1)]*m1[M4(1,2)])*invdet; + inv_transpose_result[M3(1,0)] = -(m1[M4(0,1)]*m1[M4(2,2)]-m1[M4(0,2)]*m1[M4(2,1)])*invdet; + inv_transpose_result[M3(2,0)] = (m1[M4(0,1)]*m1[M4(1,2)]-m1[M4(0,2)]*m1[M4(1,1)])*invdet; + inv_transpose_result[M3(0,1)] = -(m1[M4(1,0)]*m1[M4(2,2)]-m1[M4(1,2)]*m1[M4(2,0)])*invdet; + inv_transpose_result[M3(1,1)] = (m1[M4(0,0)]*m1[M4(2,2)]-m1[M4(0,2)]*m1[M4(2,0)])*invdet; + inv_transpose_result[M3(2,1)] = -(m1[M4(0,0)]*m1[M4(1,2)]-m1[M4(1,0)]*m1[M4(0,2)])*invdet; + inv_transpose_result[M3(0,2)] = (m1[M4(1,0)]*m1[M4(2,1)]-m1[M4(2,0)]*m1[M4(1,1)])*invdet; + inv_transpose_result[M3(1,2)] = -(m1[M4(0,0)]*m1[M4(2,1)]-m1[M4(2,0)]*m1[M4(0,1)])*invdet; + inv_transpose_result[M3(2,2)] = (m1[M4(0,0)]*m1[M4(1,1)]-m1[M4(1,0)]*m1[M4(0,1)])*invdet; + + return inv_transpose_result; +} diff --git a/windows/templates/GLUT/CL_GLUT_glmatrix.h.txt b/windows/templates/GLUT/CL_GLUT_glmatrix.h.txt new file mode 100644 index 00000000..7cf2c68a --- /dev/null +++ b/windows/templates/GLUT/CL_GLUT_glmatrix.h.txt @@ -0,0 +1,31 @@ +#ifndef GLMATRIX_H_ +#define GLMATRIX_H_ + +#ifndef GL_MODELVIEW +#define GL_MODELVIEW 0x1700 +#endif +#ifndef GL_PROJECTION +#define GL_PROJECTION 0x1701 +#endif +#ifndef GL_TEXTURE +#define GL_TEXTURE 0x1702 +#endif + +void gl_matrix_mode(int mmode); +void gl_push_matrix(void); +void gl_pop_matrix(void); +void gl_load_identity(void); +void gl_load_matrixf(const float *mat); +void gl_mult_matrixf(const float *mat); +void gl_translatef(float x, float y, float z); +void gl_rotatef(float angle, float x, float y, float z); +void gl_scalef(float x, float y, float z); +void gl_ortho(float left, float right, float bottom, float top, float znear, float zfar); +void gl_frustum(float left, float right, float bottom, float top, float znear, float zfar); +void glu_perspective(float vfov, float aspect, float znear, float zfar); + +/* getters */ +float* get_matrix(int mm); +float* get_inv_transpose_3x3(int mm); + +#endif /* GLMATRIX_H_ */ diff --git a/windows/templates/GLUT/CL_GLUT_shapes.c.txt b/windows/templates/GLUT/CL_GLUT_shapes.c.txt new file mode 100644 index 00000000..09fb5efa --- /dev/null +++ b/windows/templates/GLUT/CL_GLUT_shapes.c.txt @@ -0,0 +1,946 @@ +/*! \file shapes.c + \ingroup demos + + This program is a test harness for the various shapes + in OpenGLUT. It may also be useful to see which + parameters control what behavior in the OpenGLUT + objects. + + Spinning wireframe and solid-shaded shapes are + displayed. Some parameters can be adjusted. + + Keys: + - Esc   Quit + - q Q   Quit + - i I   Show info + - p P   Toggle perspective or orthographic projection + - r R   Toggle fixed or animated rotation around model X-axis + - s S   Toggle toggle fixed function or shader render path + - n N   Toggle visualization of object's normal vectors + - = +   Increase \a slices + - - _   Decreate \a slices + - , <   Decreate \a stacks + - . >   Increase \a stacks + - 9 (   Decreate \a depth (Sierpinski Sponge) + - 0 )   Increase \a depth (Sierpinski Sponge) + - up    Increase "outer radius" + - down  Decrease "outer radius" + - left  Decrease "inner radius" + - right Increase "inner radius" + - PgUp  Next shape-drawing function + - PgDn  Prev shape-drawing function + + \author Written by Nigel Stewart November 2003 + + \author Portions Copyright (C) 2004, the OpenGLUT project contributors.
+ OpenGLUT branched from freeglut in February, 2004. + + \image html openglut_shapes.png OpenGLUT Geometric Shapes Demonstration + \include demos/shapes/shapes.c +*/ + +#include + +#include +#include +#include +#include + +#include "glmatrix.h" + +#ifdef _MSC_VER +/* DUMP MEMORY LEAKS */ +#include +#endif + +/* report GL errors, if any, to stderr */ +void checkError(const char *functionName) +{ + GLenum error; + while (( error = glGetError() ) != GL_NO_ERROR) { + fprintf (stderr, "GL error 0x%X detected in %s\n", error, functionName); + } +} + +/* + * OpenGL 2+ shader mode needs some function and macro definitions, + * avoiding a dependency on additional libraries like GLEW or the + * GL/glext.h header + */ +#ifndef GL_FRAGMENT_SHADER +#define GL_FRAGMENT_SHADER 0x8B30 +#endif + +#ifndef GL_VERTEX_SHADER +#define GL_VERTEX_SHADER 0x8B31 +#endif + +#ifndef GL_COMPILE_STATUS +#define GL_COMPILE_STATUS 0x8B81 +#endif + +#ifndef GL_LINK_STATUS +#define GL_LINK_STATUS 0x8B82 +#endif + +#ifndef GL_INFO_LOG_LENGTH +#define GL_INFO_LOG_LENGTH 0x8B84 +#endif + +typedef ptrdiff_t ourGLsizeiptr; +typedef char ourGLchar; + +#ifndef APIENTRY +#define APIENTRY +#endif + +#ifndef GL_VERSION_2_0 +typedef GLuint (APIENTRY *PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRY *PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const ourGLchar **string, const GLint *length); +typedef void (APIENTRY *PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRY *PFNGLCREATEPROGRAMPROC) (void); +typedef void (APIENTRY *PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRY *PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRY *PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRY *PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRY *PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, ourGLchar *infoLog); +typedef void (APIENTRY *PFNGLGETPROGRAMIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRY *PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, ourGLchar *infoLog); +typedef GLint (APIENTRY *PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const ourGLchar *name); +typedef GLint (APIENTRY *PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const ourGLchar *name); +typedef void (APIENTRY *PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRY *PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +PFNGLCREATESHADERPROC gl_CreateShader; +PFNGLSHADERSOURCEPROC gl_ShaderSource; +PFNGLCOMPILESHADERPROC gl_CompileShader; +PFNGLCREATEPROGRAMPROC gl_CreateProgram; +PFNGLATTACHSHADERPROC gl_AttachShader; +PFNGLLINKPROGRAMPROC gl_LinkProgram; +PFNGLUSEPROGRAMPROC gl_UseProgram; +PFNGLGETSHADERIVPROC gl_GetShaderiv; +PFNGLGETSHADERINFOLOGPROC gl_GetShaderInfoLog; +PFNGLGETPROGRAMIVPROC gl_GetProgramiv; +PFNGLGETPROGRAMINFOLOGPROC gl_GetProgramInfoLog; +PFNGLGETATTRIBLOCATIONPROC gl_GetAttribLocation; +PFNGLGETUNIFORMLOCATIONPROC gl_GetUniformLocation; +PFNGLUNIFORMMATRIX4FVPROC gl_UniformMatrix4fv; +PFNGLUNIFORMMATRIX3FVPROC gl_UniformMatrix3fv; + +void initExtensionEntries(void) +{ + gl_CreateShader = (PFNGLCREATESHADERPROC) glutGetProcAddress ("glCreateShader"); + gl_ShaderSource = (PFNGLSHADERSOURCEPROC) glutGetProcAddress ("glShaderSource"); + gl_CompileShader = (PFNGLCOMPILESHADERPROC) glutGetProcAddress ("glCompileShader"); + gl_CreateProgram = (PFNGLCREATEPROGRAMPROC) glutGetProcAddress ("glCreateProgram"); + gl_AttachShader = (PFNGLATTACHSHADERPROC) glutGetProcAddress ("glAttachShader"); + gl_LinkProgram = (PFNGLLINKPROGRAMPROC) glutGetProcAddress ("glLinkProgram"); + gl_UseProgram = (PFNGLUSEPROGRAMPROC) glutGetProcAddress ("glUseProgram"); + gl_GetShaderiv = (PFNGLGETSHADERIVPROC) glutGetProcAddress ("glGetShaderiv"); + gl_GetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) glutGetProcAddress ("glGetShaderInfoLog"); + gl_GetProgramiv = (PFNGLGETPROGRAMIVPROC) glutGetProcAddress ("glGetProgramiv"); + gl_GetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) glutGetProcAddress ("glGetProgramInfoLog"); + gl_GetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) glutGetProcAddress ("glGetAttribLocation"); + gl_GetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) glutGetProcAddress ("glGetUniformLocation"); + gl_UniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) glutGetProcAddress ("glUniformMatrix4fv"); + gl_UniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) glutGetProcAddress ("glUniformMatrix3fv"); + if (!gl_CreateShader || !gl_ShaderSource || !gl_CompileShader || !gl_CreateProgram || !gl_AttachShader || !gl_LinkProgram || !gl_UseProgram || !gl_GetShaderiv || !gl_GetShaderInfoLog || !gl_GetProgramiv || !gl_GetProgramInfoLog || !gl_GetAttribLocation || !gl_GetUniformLocation || !gl_UniformMatrix4fv || !gl_UniformMatrix3fv) + { + fprintf (stderr, "glCreateShader, glShaderSource, glCompileShader, glCreateProgram, glAttachShader, glLinkProgram, glUseProgram, glGetShaderiv, glGetShaderInfoLog, glGetProgramiv, glGetProgramInfoLog, glGetAttribLocation, glGetUniformLocation, glUniformMatrix4fv or gl_UniformMatrix3fv not found"); + exit(1); + } +} + +const ourGLchar *vertexShaderSource[] = { + "/**", + " * From the OpenGL Programming wikibook: http://en.wikibooks.org/wiki/GLSL_Programming/GLUT/Smooth_Specular_Highlights", + " * This file is in the public domain.", + " * Contributors: Sylvain Beucler", + " */", + "attribute vec3 fg_coord;", + "attribute vec3 fg_normal;", + "varying vec4 position; /* position of the vertex (and fragment) in world space */", + "varying vec3 varyingNormalDirection; /* surface normal vector in world space */", + "uniform mat4 m, p; /* don't need v, as always identity in our demo */", + "uniform mat3 m_3x3_inv_transp;", + " ", + "void main()", + "{", + " vec4 fg_coord4 = vec4(fg_coord, 1.0);", + " position = m * fg_coord4;", + " varyingNormalDirection = normalize(m_3x3_inv_transp * fg_normal);", + " ", + " mat4 mvp = p*m; /* normally p*v*m */", + " gl_Position = mvp * fg_coord4;", + "}" +}; + +const ourGLchar *fragmentShaderSource[] = { + "/**", + " * From the OpenGL Programming wikibook: http://en.wikibooks.org/wiki/GLSL_Programming/GLUT/Smooth_Specular_Highlights", + " * This file is in the public domain.", + " * Contributors: Martin Kraus, Sylvain Beucler", + " */", + "varying vec4 position; /* position of the vertex (and fragment) in world space */", + "varying vec3 varyingNormalDirection; /* surface normal vector in world space */", + "/* uniform mat4 v_inv; // in this demo, the view matrix is always an identity matrix */", + " ", + "struct lightSource", + "{", + " vec4 position;", + " vec4 diffuse;", + " vec4 specular;", + " float constantAttenuation, linearAttenuation, quadraticAttenuation;", + " float spotCutoff, spotExponent;", + " vec3 spotDirection;", + "};", + "lightSource light0 = lightSource(", + " vec4(2.0, 5.0, 5.0, 0.0),", + " vec4(1.0, 1.0, 1.0, 1.0),", + " vec4(1.0, 1.0, 1.0, 1.0),", + " 0.0, 1.0, 0.0,", + " 180.0, 0.0,", + " vec3(0.0, 0.0, 0.0)", + ");", + "vec4 scene_ambient = vec4(0.2, 0.2, 0.2, 1.0);", + " ", + "struct material", + "{", + " vec4 ambient;", + " vec4 diffuse;", + " vec4 specular;", + " float shininess;", + "};", + "material frontMaterial = material(", + " vec4(1.0, 0.0, 0.0, 1.0),", + " vec4(1.0, 0.0, 0.0, 1.0),", + " vec4(1.0, 1.0, 1.0, 1.0),", + " 100.0", + ");", + " ", + "void main()", + "{", + " vec3 normalDirection = normalize(varyingNormalDirection);", + " /* vec3 viewDirection = normalize(vec3(v_inv * vec4(0.0, 0.0, 0.0, 1.0) - position)); */", + " vec3 viewDirection = normalize(vec3(vec4(0.0, 0.0, 0.0, 1.0) - position)); /* in this demo, the view matrix is always an identity matrix */", + " vec3 lightDirection;", + " float attenuation;", + " ", + " if (0.0 == light0.position.w) /* directional light? */", + " {", + " attenuation = 1.0; /* no attenuation */", + " lightDirection = normalize(vec3(light0.position));", + " } ", + " else /* point light or spotlight (or other kind of light) */", + " {", + " vec3 positionToLightSource = vec3(light0.position - position);", + " float distance = length(positionToLightSource);", + " lightDirection = normalize(positionToLightSource);", + " attenuation = 1.0 / (light0.constantAttenuation", + " + light0.linearAttenuation * distance", + " + light0.quadraticAttenuation * distance * distance);", + " ", + " if (light0.spotCutoff <= 90.0) /* spotlight? */", + " {", + " float clampedCosine = max(0.0, dot(-lightDirection, light0.spotDirection));", + " if (clampedCosine < cos(radians(light0.spotCutoff))) /* outside of spotlight cone? */", + " {", + " attenuation = 0.0;", + " }", + " else", + " {", + " attenuation = attenuation * pow(clampedCosine, light0.spotExponent); ", + " }", + " }", + " }", + " ", + " vec3 ambientLighting = vec3(scene_ambient) * vec3(frontMaterial.ambient);", + " ", + " vec3 diffuseReflection = attenuation ", + " * vec3(light0.diffuse) * vec3(frontMaterial.diffuse)", + " * max(0.0, dot(normalDirection, lightDirection));", + " ", + " vec3 specularReflection;", + " if (dot(normalDirection, lightDirection) < 0.0) /* light source on the wrong side? */", + " {", + " specularReflection = vec3(0.0, 0.0, 0.0); /* no specular reflection */", + " }", + " else /* light source on the right side */", + " {", + " specularReflection = attenuation * vec3(light0.specular) * vec3(frontMaterial.specular) ", + " * pow(max(0.0, dot(reflect(-lightDirection, normalDirection), viewDirection)), frontMaterial.shininess);", + " }", + " ", + " gl_FragColor = vec4(ambientLighting + diffuseReflection + specularReflection, 1.0);", + "}" +}; + +GLint getAttribOrUniformLocation(const char* name, GLuint program, GLboolean isAttrib) +{ + if (isAttrib) + { + GLint attrib = gl_GetAttribLocation(program, name); + if (attrib == -1) + { + fprintf(stderr, "Warning: Could not bind attrib %s\n", name); + } + + checkError ("getAttribOrUniformLocation"); + return attrib; + } + else + { + GLint uniform = gl_GetUniformLocation(program, name); + if (uniform == -1) + { + fprintf(stderr, "Warning: Could not bind uniform %s\n", name); + } + + checkError ("getAttribOrUniformLocation"); + return uniform; + } +} + +GLuint program; +GLint attribute_fg_coord = -1, attribute_fg_normal = -1; +GLint uniform_m = -1, uniform_p = -1, uniform_m_3x3_inv_transp = -1; +GLint shaderReady = 0; /* Set to 1 when all initialization went well, to -1 when shader somehow unusable. */ + + + +void compileAndCheck(GLuint shader) +{ + GLint status; + gl_CompileShader (shader); + gl_GetShaderiv (shader, GL_COMPILE_STATUS, &status); + if (status == GL_FALSE) { + GLint infoLogLength; + ourGLchar *infoLog; + gl_GetShaderiv (shader, GL_INFO_LOG_LENGTH, &infoLogLength); + infoLog = (ourGLchar*) malloc (infoLogLength); + gl_GetShaderInfoLog (shader, infoLogLength, NULL, infoLog); + fprintf (stderr, "compile log: %s\n", infoLog); + free (infoLog); + } + checkError ("compileAndCheck"); +} + +GLuint compileShaderSource(GLenum type, GLsizei count, const ourGLchar **string) +{ + GLuint shader = gl_CreateShader (type); + gl_ShaderSource (shader, count, string, NULL); + + checkError ("compileShaderSource"); + + compileAndCheck (shader); + return shader; +} + +void linkAndCheck(GLuint program) +{ + GLint status; + gl_LinkProgram (program); + gl_GetProgramiv (program, GL_LINK_STATUS, &status); + if (status == GL_FALSE) { + GLint infoLogLength; + ourGLchar *infoLog; + gl_GetProgramiv (program, GL_INFO_LOG_LENGTH, &infoLogLength); + infoLog = (ourGLchar*) malloc (infoLogLength); + gl_GetProgramInfoLog (program, infoLogLength, NULL, infoLog); + fprintf (stderr, "link log: %s\n", infoLog); + free (infoLog); + } + checkError ("linkAndCheck"); +} + +void createProgram(GLuint vertexShader, GLuint fragmentShader) +{ + program = gl_CreateProgram (); + if (vertexShader != 0) { + gl_AttachShader (program, vertexShader); + } + if (fragmentShader != 0) { + gl_AttachShader (program, fragmentShader); + } + + checkError ("createProgram"); + + linkAndCheck (program); +} + +void initShader(void) +{ + const GLsizei vertexShaderLines = sizeof(vertexShaderSource) / sizeof(ourGLchar*); + GLuint vertexShader = + compileShaderSource (GL_VERTEX_SHADER, vertexShaderLines, vertexShaderSource); + + const GLsizei fragmentShaderLines = sizeof(fragmentShaderSource) / sizeof(ourGLchar*); + GLuint fragmentShader = + compileShaderSource (GL_FRAGMENT_SHADER, fragmentShaderLines, fragmentShaderSource); + + checkError ("initShader - 1"); + + createProgram (vertexShader, fragmentShader); + + gl_UseProgram (program); + + attribute_fg_coord = getAttribOrUniformLocation("fg_coord" , program, GL_TRUE); + attribute_fg_normal = getAttribOrUniformLocation("fg_normal" , program, GL_TRUE); + uniform_m = getAttribOrUniformLocation("m" , program, GL_FALSE); + uniform_p = getAttribOrUniformLocation("p" , program, GL_FALSE); + uniform_m_3x3_inv_transp= getAttribOrUniformLocation("m_3x3_inv_transp" , program, GL_FALSE); + + gl_UseProgram (0); + + if (attribute_fg_coord==-1 || attribute_fg_normal==-1 || + uniform_m==-1 || uniform_p==-1 || uniform_m_3x3_inv_transp==-1) + shaderReady = -1; + else + shaderReady = 1; + + checkError ("initShader - 2"); +} + +/* + * This macro is only intended to be used on arrays, of course. + */ +#define NUMBEROF(x) ((sizeof(x))/(sizeof(x[0]))) + +/* + * These global variables control which object is drawn, + * and how it is drawn. No object uses all of these + * variables. + */ +static int function_index; +static int slices = 16; +static int stacks = 16; +static double irad = .25; +static double orad = 1.0; /* doubles as size for objects other than Torus */ +static int depth = 4; +static double offset[ 3 ] = { 0, 0, 0 }; +static GLboolean show_info = GL_TRUE; +static float ar; +static GLboolean persProject = GL_TRUE; +static GLboolean animateXRot = GL_FALSE; +static GLboolean useShader = GL_FALSE; +static GLboolean visNormals = GL_FALSE; +static GLboolean flat; + +/* + * Enum to tell drawSizeInfo what to draw for each object + */ +#define GEO_NO_SIZE 0 +#define GEO_SIZE 1 +#define GEO_SCALE 2 +#define GEO_INNER_OUTER_RAD 4 +#define GEO_RAD 8 +#define GEO_BASE_HEIGHT 16 +#define GEO_RAD_HEIGHT 32 + +/* + * These one-liners draw particular objects, fetching appropriate + * information from the above globals. They are just thin wrappers + * for the FreeGLUT objects. + */ +static void drawSolidTetrahedron(void) { glutSolidTetrahedron (); } +static void drawWireTetrahedron(void) { glutWireTetrahedron (); } +static void drawSolidCube(void) { glutSolidCube(orad); } /* orad doubles as size input */ +static void drawWireCube(void) { glutWireCube(orad); } /* orad doubles as size input */ +static void drawSolidOctahedron(void) { glutSolidOctahedron (); } +static void drawWireOctahedron(void) { glutWireOctahedron (); } +static void drawSolidDodecahedron(void) { glutSolidDodecahedron (); } +static void drawWireDodecahedron(void) { glutWireDodecahedron (); } +static void drawSolidRhombicDodecahedron(void) { glutSolidRhombicDodecahedron (); } +static void drawWireRhombicDodecahedron(void) { glutWireRhombicDodecahedron (); } +static void drawSolidIcosahedron(void) { glutSolidIcosahedron (); } +static void drawWireIcosahedron(void) { glutWireIcosahedron (); } +static void drawSolidSierpinskiSponge(void) { glutSolidSierpinskiSponge (depth, offset, orad);} /* orad doubles as size input */ +static void drawWireSierpinskiSponge(void) { glutWireSierpinskiSponge (depth, offset, orad); } /* orad doubles as size input */ +static void drawSolidTorus(void) { glutSolidTorus(irad,orad,slices,stacks); } +static void drawWireTorus(void) { glutWireTorus (irad,orad,slices,stacks); } +static void drawSolidSphere(void) { glutSolidSphere(orad,slices,stacks); } /* orad doubles as size input */ +static void drawWireSphere(void) { glutWireSphere(orad,slices,stacks); } /* orad doubles as size input */ +static void drawSolidCone(void) { glutSolidCone(irad,orad,slices,stacks); } /* irad doubles as base input, and orad as height input */ +static void drawWireCone(void) { glutWireCone(irad,orad,slices,stacks); } /* irad doubles as base input, and orad as height input */ +static void drawSolidCylinder(void) { glutSolidCylinder(irad,orad,slices,stacks); } /* irad doubles as radius input, and orad as height input */ +static void drawWireCylinder(void) { glutWireCylinder(irad,orad,slices,stacks); } /* irad doubles as radius input, and orad as height input */ +/* per Glut manpage, it should be noted that the teapot is rendered + * with clockwise winding for front facing polygons... + * Same for the teacup and teaspoon + */ +static void drawSolidTeapot(void) +{ glFrontFace(GL_CW); glutSolidTeapot(orad); glFrontFace(GL_CCW); /* orad doubles as size input */} +static void drawWireTeapot(void) +{ glFrontFace(GL_CW); glutWireTeapot(orad); glFrontFace(GL_CCW); /* orad doubles as size input */} +static void drawSolidTeacup(void) +{ glFrontFace(GL_CW); glutSolidTeacup(orad); glFrontFace(GL_CCW); /* orad doubles as size input */} +static void drawWireTeacup(void) +{ glFrontFace(GL_CW); glutWireTeacup(orad); glFrontFace(GL_CCW); /* orad doubles as size input */} +static void drawSolidTeaspoon(void) +{ glFrontFace(GL_CW); glutSolidTeaspoon(orad); glFrontFace(GL_CCW); /* orad doubles as size input */} +static void drawWireTeaspoon(void) +{ glFrontFace(GL_CW); glutWireTeaspoon(orad); glFrontFace(GL_CCW); /* orad doubles as size input */} + +#define RADIUSFAC 0.70710678118654752440084436210485f + +static void drawSolidCuboctahedron(void) +{ + GLfloat radius = RADIUSFAC*(GLfloat)orad; /* orad doubles as size */ + glBegin( GL_TRIANGLES ); + glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( radius, radius, 0.0 ); glVertex3d( 0.0, radius, radius ); glVertex3d( radius, 0.0, radius ); + glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( radius, radius, 0.0 ); glVertex3d( radius, 0.0,-radius ); glVertex3d( 0.0, radius,-radius ); + glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( radius,-radius, 0.0 ); glVertex3d( radius, 0.0, radius ); glVertex3d( 0.0,-radius, radius ); + glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( radius,-radius, 0.0 ); glVertex3d( 0.0,-radius,-radius ); glVertex3d( radius, 0.0,-radius ); + glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-radius, radius, 0.0 ); glVertex3d(-radius, 0.0, radius ); glVertex3d( 0.0, radius, radius ); + glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-radius, radius, 0.0 ); glVertex3d( 0.0, radius,-radius ); glVertex3d(-radius, 0.0,-radius ); + glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-radius,-radius, 0.0 ); glVertex3d( 0.0,-radius, radius ); glVertex3d(-radius, 0.0, radius ); + glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-radius,-radius, 0.0 ); glVertex3d(-radius, 0.0,-radius ); glVertex3d( 0.0,-radius,-radius ); + glEnd(); + + glBegin( GL_QUADS ); + glNormal3d( 1.0, 0.0, 0.0 ); glVertex3d( radius, radius, 0.0 ); glVertex3d( radius, 0.0, radius ); glVertex3d( radius,-radius, 0.0 ); glVertex3d( radius, 0.0,-radius ); + glNormal3d(-1.0, 0.0, 0.0 ); glVertex3d(-radius, radius, 0.0 ); glVertex3d(-radius, 0.0,-radius ); glVertex3d(-radius,-radius, 0.0 ); glVertex3d(-radius, 0.0, radius ); + glNormal3d( 0.0, 1.0, 0.0 ); glVertex3d( radius, radius, 0.0 ); glVertex3d( 0.0, radius,-radius ); glVertex3d(-radius, radius, 0.0 ); glVertex3d( 0.0, radius, radius ); + glNormal3d( 0.0,-1.0, 0.0 ); glVertex3d( radius,-radius, 0.0 ); glVertex3d( 0.0,-radius, radius ); glVertex3d(-radius,-radius, 0.0 ); glVertex3d( 0.0,-radius,-radius ); + glNormal3d( 0.0, 0.0, 1.0 ); glVertex3d( radius, 0.0, radius ); glVertex3d( 0.0, radius, radius ); glVertex3d(-radius, 0.0, radius ); glVertex3d( 0.0,-radius, radius ); + glNormal3d( 0.0, 0.0,-1.0 ); glVertex3d( radius, 0.0,-radius ); glVertex3d( 0.0,-radius,-radius ); glVertex3d(-radius, 0.0,-radius ); glVertex3d( 0.0, radius,-radius ); + glEnd(); +} + +static void drawWireCuboctahedron(void) +{ + GLfloat radius = RADIUSFAC*(GLfloat)orad; /* orad doubles as size */ + glBegin( GL_LINE_LOOP ); + glNormal3d( 1.0, 0.0, 0.0 ); glVertex3d( radius, radius, 0.0 ); glVertex3d( radius, 0.0, radius ); glVertex3d( radius,-radius, 0.0 ); glVertex3d( radius, 0.0,-radius ); + glEnd(); + glBegin( GL_LINE_LOOP ); + glNormal3d(-1.0, 0.0, 0.0 ); glVertex3d(-radius, radius, 0.0 ); glVertex3d(-radius, 0.0,-radius ); glVertex3d(-radius,-radius, 0.0 ); glVertex3d(-radius, 0.0, radius ); + glEnd(); + glBegin( GL_LINE_LOOP ); + glNormal3d( 0.0, 1.0, 0.0 ); glVertex3d( radius, radius, 0.0 ); glVertex3d( 0.0, radius,-radius ); glVertex3d(-radius, radius, 0.0 ); glVertex3d( 0.0, radius, radius ); + glEnd(); + glBegin( GL_LINE_LOOP ); + glNormal3d( 0.0,-1.0, 0.0 ); glVertex3d( radius,-radius, 0.0 ); glVertex3d( 0.0,-radius, radius ); glVertex3d(-radius,-radius, 0.0 ); glVertex3d( 0.0,-radius,-radius ); + glEnd(); + glBegin( GL_LINE_LOOP ); + glNormal3d( 0.0, 0.0, 1.0 ); glVertex3d( radius, 0.0, radius ); glVertex3d( 0.0, radius, radius ); glVertex3d(-radius, 0.0, radius ); glVertex3d( 0.0,-radius, radius ); + glEnd(); + glBegin( GL_LINE_LOOP ); + glNormal3d( 0.0, 0.0,-1.0 ); glVertex3d( radius, 0.0,-radius ); glVertex3d( 0.0,-radius,-radius ); glVertex3d(-radius, 0.0,-radius ); glVertex3d( 0.0, radius,-radius ); + glEnd(); +} + +#undef RADIUSFAC + +/* + * This structure defines an entry in our function-table. + */ +typedef struct +{ + const char * const name; + void (*solid) (void); + void (*wire) (void); + int drawSizeInfoFlag; +} entry; + +#define ENTRY(e,f) {#e, drawSolid##e, drawWire##e,f} +static const entry table [] = +{ + ENTRY (Tetrahedron,GEO_NO_SIZE), + ENTRY (Cube,GEO_SIZE), + ENTRY (Octahedron,GEO_NO_SIZE), + ENTRY (Dodecahedron,GEO_NO_SIZE), + ENTRY (RhombicDodecahedron,GEO_NO_SIZE), + ENTRY (Icosahedron,GEO_NO_SIZE), + ENTRY (SierpinskiSponge,GEO_SCALE), + ENTRY (Teapot,GEO_SIZE), + ENTRY (Teacup,GEO_SIZE), + ENTRY (Teaspoon,GEO_SIZE), + ENTRY (Torus,GEO_INNER_OUTER_RAD), + ENTRY (Sphere,GEO_RAD), + ENTRY (Cone,GEO_BASE_HEIGHT), + ENTRY (Cylinder,GEO_RAD_HEIGHT), + ENTRY (Cuboctahedron,GEO_SIZE) /* This one doesn't work when in shader mode and is then skipped */ +}; +#undef ENTRY + +/*! + Does printf()-like work using freeglut + glutBitmapString(). Uses a fixed font. Prints + at the indicated row/column position. + + Limitation: Cannot address pixels. + Limitation: Renders in screen coords, not model coords. +*/ +static void shapesPrintf (int row, int col, const char *fmt, ...) +{ + static char buf[256]; + int viewport[4]; + void *font = GLUT_BITMAP_9_BY_15; + va_list args; + + va_start(args, fmt); +#if defined(WIN32) && !defined(__CYGWIN__) + (void) _vsnprintf (buf, sizeof(buf), fmt, args); +#else + (void) vsnprintf (buf, sizeof(buf), fmt, args); +#endif + va_end(args); + + glGetIntegerv(GL_VIEWPORT,viewport); + + glPushMatrix(); + glLoadIdentity(); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + + glOrtho(0,viewport[2],0,viewport[3],-1,1); + + glRasterPos2i + ( + glutBitmapWidth(font, ' ') * col, + - glutBitmapHeight(font) * row + viewport[3] + ); + glutBitmapString (font, (unsigned char*)buf); + + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); +} + +/* Print info about the about the current shape and render state on the screen */ +static void DrawSizeInfo(int *row) +{ + switch (table [function_index].drawSizeInfoFlag) + { + case GEO_NO_SIZE: + break; + case GEO_SIZE: + shapesPrintf ((*row)++, 1, "Size Up Down : %f", orad); + break; + case GEO_SCALE: + shapesPrintf ((*row)++, 1, "Scale Up Down : %f", orad); + break; + case GEO_INNER_OUTER_RAD: + shapesPrintf ((*row)++, 1, "Inner radius Left Right: %f", irad); + shapesPrintf ((*row)++, 1, "Outer radius Up Down : %f", orad); + break; + case GEO_RAD: + shapesPrintf ((*row)++, 1, "Radius Up Down : %f", orad); + break; + case GEO_BASE_HEIGHT: + shapesPrintf ((*row)++, 1, "Base Left Right: %f", irad); + shapesPrintf ((*row)++, 1, "Height Up Down : %f", orad); + break; + case GEO_RAD_HEIGHT: + shapesPrintf ((*row)++, 1, "Radius Left Right: %f", irad); + shapesPrintf ((*row)++, 1, "Height Up Down : %f", orad); + break; + } +} + +static void drawInfo() +{ + int row = 1; + shapesPrintf (row++, 1, "Shape PgUp PgDn: %s", table [function_index].name); + shapesPrintf (row++, 1, "Slices +-: %d Stacks <>: %d", slices, stacks); + shapesPrintf (row++, 1, "nSides +-: %d nRings <>: %d", slices, stacks); + shapesPrintf (row++, 1, "Depth (): %d", depth); + DrawSizeInfo(&row); + if (persProject) + shapesPrintf (row++, 1, "Perspective projection (p)"); + else + shapesPrintf (row++, 1, "Orthographic projection (p)"); + if (useShader) { + shapesPrintf (row++, 1, "Using shader (s)"); + } else { + shapesPrintf (row++, 1, "Using fixed function pipeline (s)"); + if (flat) + shapesPrintf (row++, 1, "Flat shading (f)"); + else + shapesPrintf (row++, 1, "Smooth shading (f)"); + } + if (animateXRot) + shapesPrintf (row++, 1, "2D rotation (r)"); + else + shapesPrintf (row++, 1, "1D rotation (r)"); + shapesPrintf (row++, 1, "visualizing normals: %i (n)",visNormals); +} + +/* GLUT callback Handlers */ +static void +resize(int width, int height) +{ + ar = (float) width / (float) height; + + glViewport(0, 0, width, height); +} + +static void display(void) +{ + const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0; + const double a = t*89.0; + const double b = (animateXRot?t:1)*67.0; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glutSetOption(GLUT_GEOMETRY_VISUALIZE_NORMALS,visNormals); /* Normals visualized or not? */ + + glShadeModel(flat ? GL_FLAT : GL_SMOOTH); /* flat or gouraud shading */ + + if (useShader && !shaderReady) + initShader(); + + if (useShader && shaderReady) + { + /* setup use of shader (and vertex buffer by FreeGLUT) */ + gl_UseProgram (program); + glutSetVertexAttribCoord3(attribute_fg_coord); + glutSetVertexAttribNormal(attribute_fg_normal); + /* There is also a glutSetVertexAttribTexCoord2, which is used only when drawing the teapot, teacup or teaspoon */ + + gl_matrix_mode(GL_PROJECTION); + gl_load_identity(); + if (persProject) + gl_frustum(-ar, ar, -1.f, 1.f, 2.f, 100.f); + else + gl_ortho(-ar*3, ar*3, -3.f, 3.f, 2.f, 100.f); + gl_UniformMatrix4fv (uniform_p, 1, GL_FALSE, get_matrix(GL_PROJECTION)); + + + gl_matrix_mode(GL_MODELVIEW); + gl_load_identity(); + + gl_push_matrix(); + /* Not in reverse order like normal OpenGL, our util library multiplies the matrices in the order they are specified in */ + gl_rotatef((float)a,0,0,1); + gl_rotatef((float)b,1,0,0); + gl_translatef(0,1.2f,-6); + gl_UniformMatrix4fv (uniform_m , 1, GL_FALSE, get_matrix(GL_MODELVIEW)); + gl_UniformMatrix3fv (uniform_m_3x3_inv_transp, 1, GL_FALSE, get_inv_transpose_3x3(GL_MODELVIEW)); + table [function_index].solid (); + gl_pop_matrix(); + + gl_push_matrix(); + gl_rotatef((float)a,0,0,1); + gl_rotatef((float)b,1,0,0); + gl_translatef(0,-1.2f,-6); + gl_UniformMatrix4fv (uniform_m , 1, GL_FALSE, get_matrix(GL_MODELVIEW)); + gl_UniformMatrix3fv (uniform_m_3x3_inv_transp, 1, GL_FALSE, get_inv_transpose_3x3(GL_MODELVIEW)); + table [function_index].wire (); + gl_pop_matrix(); + + gl_UseProgram (0); + glutSetVertexAttribCoord3(-1); + glutSetVertexAttribNormal(-1); + + checkError ("display"); + } + else + { + /* fixed function pipeline */ + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + if (persProject) + glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0); + else + glOrtho(-ar*3, ar*3, -3.0, 3.0, 2.0, 100.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glEnable(GL_LIGHTING); + + glColor3d(1,0,0); + + glPushMatrix(); + glTranslated(0,1.2,-6); + glRotated(b,1,0,0); + glRotated(a,0,0,1); + table [function_index].solid (); + glPopMatrix(); + + glPushMatrix(); + glTranslated(0,-1.2,-6); + glRotated(b,1,0,0); + glRotated(a,0,0,1); + table [function_index].wire (); + glPopMatrix(); + + glDisable(GL_LIGHTING); + glColor3d(0.1,0.1,0.4); + } + + if( show_info ) + /* print info to screen */ + drawInfo(); + else + /* print to command line instead */ + printf ( "Shape %d slides %d stacks %d\n", function_index, slices, stacks ) ; + + glutSwapBuffers(); +} + + +static void +key(unsigned char key, int x, int y) +{ + switch (key) + { + case 27 : + case 'Q': + case 'q': glutLeaveMainLoop () ; break; + + case 'I': + case 'i': show_info=!show_info; break; + + case '=': + case '+': slices++; break; + + case '-': + case '_': if( slices > -1 ) slices--; break; + + case ',': + case '<': if( stacks > -1 ) stacks--; break; + + case '.': + case '>': stacks++; break; + + case '9': + case '(': if( depth > -1 ) depth--; break; + + case '0': + case ')': ++depth; break; + + case 'P': + case 'p': persProject=!persProject; break; + + case 'R': + case 'r': animateXRot=!animateXRot; break; + + case 'S': + case 's': + useShader=!useShader; + /* Cuboctahedron can't be shown when in shader mode, move to next */ + if (useShader && NUMBEROF (table)-1 == ( unsigned )function_index) + function_index = 0; + break; + + case 'F': + case 'f': + flat ^= 1; + break; + + case 'N': + case 'n': visNormals=!visNormals; break; + + default: + break; + } + + glutPostRedisplay(); +} + +static void special (int key, int x, int y) +{ + switch (key) + { + case GLUT_KEY_PAGE_UP: ++function_index; break; + case GLUT_KEY_PAGE_DOWN: --function_index; break; + case GLUT_KEY_UP: orad *= 2; break; + case GLUT_KEY_DOWN: orad /= 2; break; + + case GLUT_KEY_RIGHT: irad *= 2; break; + case GLUT_KEY_LEFT: irad /= 2; break; + + default: + break; + } + + if (0 > function_index) + function_index = NUMBEROF (table) - 1; + + if (NUMBEROF (table) <= ( unsigned )function_index) + function_index = 0; + + /* Cuboctahedron can't be shown when in shader mode, skip it */ + if (useShader && NUMBEROF (table)-1 == ( unsigned )function_index) + { + if (key==GLUT_KEY_PAGE_UP) + function_index = 0; + else + function_index -= 1; + } +} + + +static void +idle(void) +{ + glutPostRedisplay(); +} + +const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f }; +const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; +const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; +const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; + +const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f }; +const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f }; +const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; +const GLfloat high_shininess[] = { 100.0f }; + +/* Program entry point */ + +int +main(int argc, char *argv[]) +{ + glutInitWindowSize(800,600); + glutInitWindowPosition(40,40); + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_MULTISAMPLE); + + glutCreateWindow("FreeGLUT Shapes"); + + glutReshapeFunc(resize); + glutDisplayFunc(display); + glutKeyboardFunc(key); + glutSpecialFunc(special); + glutIdleFunc(idle); + + glutSetOption ( GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION ) ; + + glClearColor(1,1,1,1); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); + + glEnable(GL_LIGHT0); + glEnable(GL_NORMALIZE); + glEnable(GL_COLOR_MATERIAL); + + glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient); + glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); + glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); + glLightfv(GL_LIGHT0, GL_POSITION, light_position); + + glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); + glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); + glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); + glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess); + + initExtensionEntries(); + + glutMainLoop(); + +#ifdef _MSC_VER + /* DUMP MEMORY LEAK INFORMATION */ + _CrtDumpMemoryLeaks () ; +#endif + + return EXIT_SUCCESS; +} diff --git a/windows/templates/GLUT/info.template b/windows/templates/GLUT/info.template new file mode 100644 index 00000000..6faecdd2 --- /dev/null +++ b/windows/templates/GLUT/info.template @@ -0,0 +1,28 @@ +[Template] +ver=2 +Name=GLUT +Icon=CL_GLUT.ico +Description=A simple GLUT program +Description[zh_CN]=一个简单的GLUT程序 +Category=3D +Category[zh_CN]=3D + +[Unit0] +CName=main.c +C=CL_GLUT_shapes.c.txt + +[Unit1] +CName=glmatrix.h +C=CL_GLUT_glmatrix.h.txt + +[Unit2] +CName=glmatrix.c +C=CL_GLUT_glmatrix.c.txt + +[Project] +UnitCount=3 +Type=0 +IsCpp=0 +linker=-lm -lfreeglut.dll -lopengl32 -lwinmm -lgdi32 + + diff --git a/windows/templates/Graphics/CL_Graphics.ico b/windows/templates/Graphics/CL_Graphics.ico new file mode 100644 index 0000000000000000000000000000000000000000..3749cee37907ecc2adf27cf78b7068d2862c8501 GIT binary patch literal 4150 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 +#include + +void paintstar(double x, double y, double r, double a) +{ + int pt[10]; + for (int n = 0; n < 5; ++n) + { + pt[n*2] = (int)( -cos( PI * 4 / 5 * n + a ) * r + x ); + pt[n*2+1] = (int)( sin( PI * 4 / 5 * n + a) * r + y ); + } + fillpoly(5, pt); +} + +int main() +{ + initgraph( 640, 480 ); + setcolor( RGB(0xff, 0xff, 0xff) ); + setfillcolor( RGB(0, 0, 0xff) ); + setrendermode(RENDER_MANUAL); + + double r = 0; + for ( ; is_run(); delay_fps(60) ) + { + r += 0.02; + if (r > PI * 2) r -= PI * 2; + + cleardevice(); + paintstar(300, 200, 100, r); + } + return 0; +} \ No newline at end of file diff --git a/windows/templates/Graphics/info.template b/windows/templates/Graphics/info.template new file mode 100644 index 00000000..c3fe249f --- /dev/null +++ b/windows/templates/Graphics/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=Graphics.h +Icon=CL_Graphics.ico +Description=A simple program use Easy Graphics Engine +Description[zh_CN]=使用EGE库的简单绘图程序 +Category=Multimedia +Category[zh_CN]=多媒体 + +[Unit0] +CppName=main.cpp +Cpp=CL_Graphics_cpp.txt + +[Project] +UnitCount=1 +Type=0 +IsCpp=1 +linker=-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus_@@__@@_ + + diff --git a/windows/templates/Hello/Communication.ico b/windows/templates/Hello/Communication.ico new file mode 100644 index 0000000000000000000000000000000000000000..1d232575302c7da96a84b948e03e868ba5493557 GIT binary patch literal 2998 zcmc)MKWH0Q9Ki8koIo05oUG1LaUiD%W3YCo9c@is9Ir(~Iv65|AORi3o`feEEXWvw zC{@wH8EFU(=s;-jK@pyGOYjiR5IPuDcxg$CU%$V1C&w-}g)V*a`R?8C^M3E$@16gM z+>$BDWFBz7Bfn0G%!|+$`d`VF!oD~(JKxKpZmCZzb`bLlLIwwi=pohQ#!nwm*B+%Q%iRCDWA(-Z?$(({&ta zHkPC>}V^i`xIq_T$m%;L%ejbJv`oJKS*=GuoHC#>6^*95-hA z&$WMkW+xcsG6Uw9t+QN12aMvzV347o)Aj3(1zY0jEgryv(^Ffp=I=c4V!SXKB|D&? z!O|B-=@u!_JCiM&PH!wE`y_>bh$oSIwb(7AL@o%`y0&daauPI9u}Z(X|Pz1FYm-t*pZ zPsYFeB*U?hc5I|JG_rYUWaYp}w#9p{$KJ6><-JJpwMd~Xl3$bI2|mPo_+5M%zkyxn zSj8{nm+)Eq9G<-GHok`6#INA9SmCJzFL=QVUe@FUAL2dyF20Q4z_0T&xQbuKFX6NJ zIs6zOZ}0|h@CI-2=X{R&yyx?pPnpk}^<#XDAL0-3 z2YAiiLhqp~=pwp+&XfNHAL2dyF20Q4z^~(1@yqxnd=@{4CvUrrui-cGEBNdU)!}#0 z2|mPo_+5M%zmXNQPBmAl<}%e>qMBK%IfozPWBd?*h(Ex$@Vw8*d-w{zh%eyt`a2G9 z@CI-225(po+jY!#y=S{#vt4DjYi&(rjF0g{{2~4T-@@PU`p5}B#C!N%d>Oxizv1;E z?@-$K8h#VMg3sb_D$vlJ;6uEJ-^EjDv%!O1U!b8G<74~~e~3T8Q=A(LG~{nUo1@0D z$+5zb<+!OpXJ=>f>C-3q@Zp0T9UV!(-6VUBi;MsUwL)7b+f$Jjd z6gobx)oXQtZ9CP7B~W8h@Q@TB1yN)tsCT)D*vBMJ{qMz^ftp!Rt#_+kKLON8<933` zr?@r)i%bFQ*9`TunnxWgNg0$b*)?qeFh0Lc_l zMT)1&h%4ROk6Jxm^Jn>>_lX$wICUw<#vXK59Db>PgdUyL|Wm H{y*h!V}hYg literal 0 HcmV?d00001 diff --git a/windows/templates/Hello/Hello_c.txt b/windows/templates/Hello/Hello_c.txt new file mode 100644 index 00000000..015f3f20 --- /dev/null +++ b/windows/templates/Hello/Hello_c.txt @@ -0,0 +1,6 @@ +#include + +int main(int argc, char** argv) { + printf("Hello world!\n"); + return 0; +} \ No newline at end of file diff --git a/windows/templates/Hello/Hello_cpp.txt b/windows/templates/Hello/Hello_cpp.txt new file mode 100644 index 00000000..59205e45 --- /dev/null +++ b/windows/templates/Hello/Hello_cpp.txt @@ -0,0 +1,5 @@ +#include + +int main(int argc, char** argv) { + std::cout << "Hello world!\n"; +} \ No newline at end of file diff --git a/windows/templates/Hello/info.template b/windows/templates/Hello/info.template new file mode 100644 index 00000000..522f468e --- /dev/null +++ b/windows/templates/Hello/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=Hello World +Name[zh_CN]=世界,你好! +Icon=Communication.ico +Description=A classic Hello World program +Description[zh_CN]=一个经典的“世界,你好!”程序 +Category=Console +Category[zh_CN]=控制台 + +[Unit0] +CName=main.c +CppName=main.cpp +C=Hello_c.txt +Cpp=Hello_cpp.txt + +[Project] +UnitCount=1 +Type=1 +Icon=Communication.ico diff --git a/windows/templates/HelloInput/ConsoleToo.ico b/windows/templates/HelloInput/ConsoleToo.ico new file mode 100644 index 0000000000000000000000000000000000000000..4238e81ffbf396829bb934b62ed82e17319d2724 GIT binary patch literal 4286 zcmd^?A&lcl5JkOOa07!*VYg-%7-)713=9knG&D3>U}$J)YUxN|V5CEVfq|ic17}(9 zf90;k$s`%wX-+!ny!vB1cK5IP^}E`eBwzIJ+qZRNM2ru?*iSwoG}_)Uw(f#W;i}xk4B?V*L5HcawK04v>>kO zbZVSMS%y3>LS7Vs>rydQ8do>X1-j?As;cdISyuKgWAZ!?E3nGLav zH?7Fm`Liq&Um50$g|Ligt`}hj=8k#DG(MX-X1bn*X*NWr`wJ$@>vBH}<1`JW^1=_U z0sN(MSrW5ie+SDY4-4h9SoWAN6(_KG`_RSL_eyZq8>Cl0)B{2D_qrau6BX5G;1=!c~}KgeH~v_E)|U16X?8dNSFN-C;b+$l+Fh`0*e$a{jf(0E^v_zgyz>it@() z0DgMr@c#lme+YZkpBjLp_Pl5C_wWpH6KfyaB_4~#e9U(gUheE0ppJWsfB#ZTyoJx% z<32(Yy=Y??C-8mVf0N@+LHljLFL`goGllJoc-pzqAMHQl{H*7!>mfJ%|K|fOek93n ce + +void Foo() { + printf("Hello World!\n"); +} + +int main(int argc, char** argv) { + char input = 0; + + printf("Hello! This is a console application.\n"); + printf("Press q to quit, press a to execute foo.\n"); + while(1) { + if(scanf("%c",&input) == 1) { + if(input == 'a') { + Foo(); + } else if(input == 'q') { + break; + } else if(input != '\n') { + printf("Unknown command '%c'! Ignoring...\n",input); + } + } else { + printf("Invalid input! Ignoring...\n"); + } + } + + return 0; +} diff --git a/windows/templates/HelloInput/HelloInput_cpp.txt b/windows/templates/HelloInput/HelloInput_cpp.txt new file mode 100644 index 00000000..0cb67617 --- /dev/null +++ b/windows/templates/HelloInput/HelloInput_cpp.txt @@ -0,0 +1,27 @@ +#include +using std::cin; +using std::cout; +using std::endl; + +void Foo() { + cout << "Hello World!" << endl; +} + +int main(int argc, char** argv) { + char input = 0; + + cout << "Hello! This is a console application." << endl; + cout << "Press q to quit, press a to execute foo." << endl; + while(1) { + cin >> input; + if(input == 'a') { + Foo(); + } else if(input == 'q') { + break; + } else if(input != '\n') { + cout << "Unknown command '" << input << "'! Ignoring...\n"; + } + } + + return 0; +} diff --git a/windows/templates/HelloInput/info.template b/windows/templates/HelloInput/info.template new file mode 100644 index 00000000..1874052f --- /dev/null +++ b/windows/templates/HelloInput/info.template @@ -0,0 +1,19 @@ +[Template] +ver=2 +Name=Input Loop +Name[zh_CN]=输入循环 +Icon=ConsoleToo.ico +Description=A console with an input loop +Description[zh_CN]=一个带输入循环的控制台程序 +Category=Console +Category[zh_CN]=控制台 + +[Unit0] +CName=main.c +CppName=main.cpp +C=HelloInput_c.txt +Cpp=HelloInput_cpp.txt + +[Project] +UnitCount=1 +Type=1 diff --git a/windows/templates/Jackpot/Games.ico b/windows/templates/Jackpot/Games.ico new file mode 100644 index 0000000000000000000000000000000000000000..1acc99dba73311f5949c7bdd05414f989ee8c870 GIT binary patch literal 6054 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 TY3h91y13H#eieNZeZKa8q?h%} literal 0 HcmV?d00001 diff --git a/windows/templates/Jackpot/Jackpot_cpp.txt b/windows/templates/Jackpot/Jackpot_cpp.txt new file mode 100644 index 00000000..af939395 --- /dev/null +++ b/windows/templates/Jackpot/Jackpot_cpp.txt @@ -0,0 +1,88 @@ +#include +#include +#include + +using namespace std; + +void Start(); +void GetResults(); + +int i, j, life, maxrand; +char c; + +void Start() { + i = 0; + j = 0; + life = 0; + maxrand = 6; + + cout << "Select difficulty mode:\n"; // the user has to select a difficutly level + cout << "1 : Easy (0-15)\n"; + cout << "2 : Medium (0-30)\n"; + cout << "3 : Difficult (0-50)\n"; + cout << "or type another key to quit\n"; + c = 30; + + cin >> c; // read the user's choice + cout << "\n"; + + switch (c) { + case '1': + maxrand = 15; // the random number will be between 0 and maxrand + break; + case '2': + maxrand = 30; + break; + case '3': + maxrand = 50; + break; + default: + exit(0); + break; + } + + life = 5; // number of lifes of the player + srand((unsigned)time(NULL)); // init Rand() function + j = rand() % maxrand; // j get a random value between 0 and maxrand + + GetResults(); +} + +void GetResults() { + if (life <= 0) { // if player has no more life then he loses + cout << "You lose !\n\n"; + Start(); + } + + cout << "Type a number: \n"; + cin >> i; + + if((i>maxrand) || (i<0)) { // if the user number isn't correct, restart + cout << "Error: number not between 0 and \n" << maxrand; + GetResults(); + } + + if(i == j) { + cout << "YOU WIN!\n\n"; // the user found the secret number + Start(); + } else if(i>j) { + cout << "Too BIG\n"; + life = life - 1; + cout << "Lives remaining: " << life << "\n\n"; + GetResults(); + } else if(i +#include + +#include "main.h" + +LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam); +LRESULT CALLBACK MDIChildWndProc(HWND hwnd, UINT Message, WPARAM wParam,LPARAM lParam); + +char g_szAppName[] = "MyMDIWindow"; +char g_szChild[] = "MyMDIChild"; +HINSTANCE g_hInst; +HWND g_hMDIClient, g_hStatusBar, g_hToolBar; +HWND g_hMainWindow; + +BOOL LoadFile(HWND hEdit, LPSTR pszFileName) { + HANDLE hFile; + BOOL bSuccess = FALSE; + + hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + if(hFile != INVALID_HANDLE_VALUE) { + DWORD dwFileSize; + dwFileSize = GetFileSize(hFile, NULL); + if(dwFileSize != 0xFFFFFFFF) { + LPSTR pszFileText; + pszFileText = (LPSTR)(GlobalAlloc(GPTR, dwFileSize + 1)); + if(pszFileText != NULL) { + DWORD dwRead; + if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL)) { + pszFileText[dwFileSize] = 0; // Null terminator + if(SetWindowText(hEdit, pszFileText)) + bSuccess = TRUE; // It worked! + } + GlobalFree(pszFileText); + } + } + CloseHandle(hFile); + } + return bSuccess; +} + +BOOL SaveFile(HWND hEdit, LPSTR pszFileName) { + HANDLE hFile; + BOOL bSuccess = FALSE; + + hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, NULL, + CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + if(hFile != INVALID_HANDLE_VALUE) { + DWORD dwTextLength; + dwTextLength = GetWindowTextLength(hEdit); + if(dwTextLength > 0) {// No need to bother if there's no text. + LPSTR pszText; + pszText = (LPSTR)(GlobalAlloc(GPTR, dwTextLength + 1)); + if(pszText != NULL) { + if(GetWindowText(hEdit, pszText, dwTextLength + 1)) { + DWORD dwWritten; + if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL)) + bSuccess = TRUE; + } + GlobalFree(pszText); + } + } + CloseHandle(hFile); + } + return bSuccess; +} + +BOOL GetFileName(HWND hwnd, LPSTR pszFileName, BOOL bSave) { + OPENFILENAME ofn; + + ZeroMemory(&ofn, sizeof(ofn)); + pszFileName[0] = 0; + + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hwnd; + ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0"; + ofn.lpstrFile = pszFileName; + ofn.nMaxFile = MAX_PATH; + ofn.lpstrDefExt = "txt"; + + if(bSave) { + ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | + OFN_OVERWRITEPROMPT; + if(!GetSaveFileName(&ofn)) + return FALSE; + } else { + ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + if(!GetOpenFileName(&ofn)) + return FALSE; + } + return TRUE; +} + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpszCmdParam, int nCmdShow) { + MSG Msg; + WNDCLASSEX WndClassEx; + + g_hInst = hInstance; + + WndClassEx.cbSize = sizeof(WNDCLASSEX); + WndClassEx.style = CS_HREDRAW | CS_VREDRAW; + WndClassEx.lpfnWndProc = WndProc; + WndClassEx.cbClsExtra = 0; + WndClassEx.cbWndExtra = 0; + WndClassEx.hInstance = hInstance; + WndClassEx.hIcon = LoadIcon(NULL, IDI_APPLICATION); + WndClassEx.hCursor = LoadCursor(NULL, IDC_ARROW); + WndClassEx.hbrBackground = (HBRUSH)(COLOR_3DSHADOW+1); + WndClassEx.lpszMenuName = "MAIN"; + WndClassEx.lpszClassName = g_szAppName; + WndClassEx.hIconSm = LoadIcon(NULL, IDI_APPLICATION); + + if(!RegisterClassEx(&WndClassEx)) { + MessageBox(0, "Could Not Register Window", "Oh Oh...",MB_ICONEXCLAMATION | MB_OK); + return -1; + } + + WndClassEx.lpfnWndProc = MDIChildWndProc; + WndClassEx.lpszMenuName = NULL; + WndClassEx.lpszClassName = g_szChild; + WndClassEx.hbrBackground = (HBRUSH)(COLOR_3DFACE+1); + + if(!RegisterClassEx(&WndClassEx)) { + MessageBox(0, "Could Not Register Child Window", "Oh Oh...", + MB_ICONEXCLAMATION | MB_OK); + return -1; + } + + g_hMainWindow = CreateWindowEx(WS_EX_APPWINDOW,g_szAppName,"MDI File Editor",WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + 0, 0, hInstance, NULL); + + if (g_hMainWindow == NULL){ + MessageBox(0, "No Window", "Oh Oh...", MB_ICONEXCLAMATION | MB_OK); + return -1; + } + + ShowWindow(g_hMainWindow, nCmdShow); + UpdateWindow(g_hMainWindow); + + while(GetMessage(&Msg, NULL, 0, 0)) { + if (!TranslateMDISysAccel(g_hMDIClient, &Msg)) { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } + } + return Msg.wParam; +} + +LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { + switch(Message) { + case WM_CREATE: { + CLIENTCREATESTRUCT ccs; + int iStatusWidths[] = {200, 300, -1}; + TBADDBITMAP tbab; + TBBUTTON tbb[9]; + + // Find window menu where children will be listed + ccs.hWindowMenu = GetSubMenu(GetMenu(hwnd), 2); + ccs.idFirstChild = ID_MDI_FIRSTCHILD; + g_hMDIClient = CreateWindowEx(WS_EX_CLIENTEDGE, "mdiclient", NULL, + WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, + CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, + hwnd, (HMENU)ID_MDI_CLIENT, g_hInst, (LPVOID)&ccs); + ShowWindow(g_hMDIClient, SW_SHOW); + + g_hStatusBar = CreateWindowEx(0, STATUSCLASSNAME, NULL, + WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0, + hwnd, (HMENU)ID_STATUSBAR, g_hInst, NULL); + SendMessage(g_hStatusBar, SB_SETPARTS, 3, (LPARAM)iStatusWidths); + SendMessage(g_hStatusBar, SB_SETTEXT, 2, (LPARAM)"Toolbar & Statusbar Example"); + + g_hToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, + WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, + hwnd, (HMENU)ID_TOOLBAR, g_hInst, NULL); + + // Send the TB_BUTTONSTRUCTSIZE message, which is required for + // backward compatibility. + SendMessage(g_hToolBar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); + + tbab.hInst = HINST_COMMCTRL; + tbab.nID = IDB_STD_SMALL_COLOR; + SendMessage(g_hToolBar, TB_ADDBITMAP, 0, (LPARAM)&tbab); + + ZeroMemory(tbb, sizeof(tbb)); + + tbb[0].iBitmap = STD_FILENEW; + tbb[0].fsState = TBSTATE_ENABLED; + tbb[0].fsStyle = TBSTYLE_BUTTON; + tbb[0].idCommand = CM_FILE_NEW; + + tbb[1].iBitmap = STD_FILEOPEN; + tbb[1].fsState = TBSTATE_ENABLED; + tbb[1].fsStyle = TBSTYLE_BUTTON; + tbb[1].idCommand = CM_FILE_OPEN; + + tbb[2].iBitmap = STD_FILESAVE; + tbb[2].fsStyle = TBSTYLE_BUTTON; + tbb[2].idCommand = CM_FILE_SAVE; + + tbb[3].fsStyle = TBSTYLE_SEP; + + tbb[4].iBitmap = STD_CUT; + tbb[4].fsStyle = TBSTYLE_BUTTON; + tbb[4].idCommand = CM_EDIT_CUT; + + tbb[5].iBitmap = STD_COPY; + tbb[5].fsStyle = TBSTYLE_BUTTON; + tbb[5].idCommand = CM_EDIT_COPY; + + tbb[6].iBitmap = STD_PASTE; + tbb[6].fsStyle = TBSTYLE_BUTTON; + tbb[6].idCommand = CM_EDIT_PASTE; + + tbb[7].fsStyle = TBSTYLE_SEP; + + tbb[8].iBitmap = STD_UNDO; + tbb[8].fsStyle = TBSTYLE_BUTTON; + tbb[8].idCommand = CM_EDIT_UNDO; + + SendMessage(g_hToolBar, TB_ADDBUTTONS, 9, (LPARAM)&tbb); + return 0; + } + case WM_COMMAND: { + switch(LOWORD(wParam)) { + case CM_FILE_EXIT: + PostMessage(hwnd, WM_CLOSE, 0, 0); + break; + case CM_FILE_NEW: { + MDICREATESTRUCT mcs; + HWND hChild; + + mcs.szTitle = "[Untitled]"; + mcs.szClass = g_szChild; + mcs.hOwner = g_hInst; + mcs.x = mcs.cx = CW_USEDEFAULT; + mcs.y = mcs.cy = CW_USEDEFAULT; + mcs.style = MDIS_ALLCHILDSTYLES; + + hChild = (HWND)SendMessage(g_hMDIClient, WM_MDICREATE,0, (LPARAM)&mcs); + if(!hChild) { + MessageBox(hwnd, "MDI Child creation failed.", "Oh Oh...",MB_ICONEXCLAMATION | MB_OK); + } + break; + } + case CM_FILE_OPEN: { + MDICREATESTRUCT mcs; + HWND hChild; + char szFileName[MAX_PATH]; + + if(!GetFileName(hwnd, szFileName, FALSE)) + break; + + mcs.szTitle = szFileName; + mcs.szClass = g_szChild; + mcs.hOwner = g_hInst; + mcs.x = mcs.cx = CW_USEDEFAULT; + mcs.y = mcs.cy = CW_USEDEFAULT; + mcs.style = MDIS_ALLCHILDSTYLES; + + hChild = (HWND)SendMessage(g_hMDIClient, WM_MDICREATE, 0, (LPARAM)&mcs); + + if(!hChild) { + MessageBox(hwnd, "MDI Child creation failed.", "Oh Oh...", + MB_ICONEXCLAMATION | MB_OK); + } + break; + } + case CM_WINDOW_TILEHORZ: + PostMessage(g_hMDIClient, WM_MDITILE, MDITILE_HORIZONTAL, 0); + break; + case CM_WINDOW_TILEVERT: + PostMessage(g_hMDIClient, WM_MDITILE, MDITILE_VERTICAL, 0); + break; + case CM_WINDOW_CASCADE: + PostMessage(g_hMDIClient, WM_MDICASCADE, 0, 0); + break; + case CM_WINDOW_ARRANGE: + PostMessage(g_hMDIClient, WM_MDIICONARRANGE, 0, 0); + break; + default: { + if(LOWORD(wParam) >= ID_MDI_FIRSTCHILD){ + DefFrameProc(hwnd, g_hMDIClient, Message, wParam, lParam); + } else { + HWND hChild; + hChild = (HWND)SendMessage(g_hMDIClient, WM_MDIGETACTIVE,0,0); + if(hChild){ + SendMessage(hChild, WM_COMMAND, wParam, lParam); + } + } + } + } + break; + } + case WM_SIZE: { + RECT rectClient, rectStatus, rectTool; + UINT uToolHeight, uStatusHeight, uClientAlreaHeight; + + SendMessage(g_hToolBar, TB_AUTOSIZE, 0, 0); + SendMessage(g_hStatusBar, WM_SIZE, 0, 0); + + GetClientRect(hwnd, &rectClient); + GetWindowRect(g_hStatusBar, &rectStatus); + GetWindowRect(g_hToolBar, &rectTool); + + uToolHeight = rectTool.bottom - rectTool.top; + uStatusHeight = rectStatus.bottom - rectStatus.top; + uClientAlreaHeight = rectClient.bottom; + + MoveWindow(g_hMDIClient, 0, uToolHeight, rectClient.right, uClientAlreaHeight - uStatusHeight - uToolHeight, TRUE); + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefFrameProc(hwnd, g_hMDIClient, Message, wParam, lParam); + } + return 0; +} + +LRESULT CALLBACK MDIChildWndProc(HWND hwnd, UINT Message, WPARAM wParam,LPARAM lParam) { + switch(Message) { + case WM_CREATE: { + char szFileName[MAX_PATH]; + HWND hEdit; + + hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN, + CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, + hwnd, (HMENU)IDC_CHILD_EDIT, g_hInst, NULL); + + SendMessage(hEdit, WM_SETFONT, + (WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0)); + + GetWindowText(hwnd, szFileName, MAX_PATH); + if(*szFileName != '[') { + if(!LoadFile(hEdit, szFileName)) { + MessageBox(hwnd, "Couldn't Load File.", "Error.",MB_OK | MB_ICONEXCLAMATION); + return -1; //cancel window creation + } + } + break; + } + case WM_SIZE: + if(wParam != SIZE_MINIMIZED) + MoveWindow(GetDlgItem(hwnd, IDC_CHILD_EDIT), 0, 0, LOWORD(lParam),HIWORD(lParam), TRUE); + break; + case WM_MDIACTIVATE: { + HMENU hMenu, hFileMenu; + BOOL EnableFlag; + char szFileName[MAX_PATH]; + + hMenu = GetMenu(g_hMainWindow); + if(hwnd == (HWND)lParam){ //being activated + EnableFlag = TRUE; + } else{ + EnableFlag = FALSE; //being de-activated + } + EnableMenuItem(hMenu, 1, MF_BYPOSITION | (EnableFlag ? MF_ENABLED : MF_GRAYED)); + EnableMenuItem(hMenu, 2, MF_BYPOSITION | (EnableFlag ? MF_ENABLED : MF_GRAYED)); + + hFileMenu = GetSubMenu(hMenu, 0); + EnableMenuItem(hFileMenu, CM_FILE_SAVE, MF_BYCOMMAND | (EnableFlag ? MF_ENABLED : MF_GRAYED)); + EnableMenuItem(hFileMenu, CM_FILE_SAVEAS, MF_BYCOMMAND | (EnableFlag ? MF_ENABLED : MF_GRAYED)); + + DrawMenuBar(g_hMainWindow); + + SendMessage(g_hToolBar, TB_ENABLEBUTTON, CM_FILE_SAVE, MAKELONG(EnableFlag, 0)); + SendMessage(g_hToolBar, TB_ENABLEBUTTON, CM_EDIT_UNDO, MAKELONG(EnableFlag, 0)); + SendMessage(g_hToolBar, TB_ENABLEBUTTON, CM_EDIT_CUT, MAKELONG(EnableFlag, 0)); + SendMessage(g_hToolBar, TB_ENABLEBUTTON, CM_EDIT_COPY, MAKELONG(EnableFlag, 0)); + SendMessage(g_hToolBar, TB_ENABLEBUTTON, CM_EDIT_PASTE, MAKELONG(EnableFlag, 0)); + + GetWindowText(hwnd, szFileName, MAX_PATH); + SendMessage(g_hStatusBar, SB_SETTEXT, 0, (LPARAM)(EnableFlag ? szFileName : "")); + break; + } + case WM_SETFOCUS: + SetFocus(GetDlgItem(hwnd, IDC_CHILD_EDIT)); + break; + case WM_COMMAND: { + switch(LOWORD(wParam)) { + case CM_FILE_SAVE: { + char szFileName[MAX_PATH]; + + GetWindowText(hwnd, szFileName, MAX_PATH); + if(*szFileName != '[') { + if(!SaveFile(GetDlgItem(hwnd, IDC_CHILD_EDIT), szFileName)) { + MessageBox(hwnd, "Couldn't Save File.", "Error.",MB_OK | MB_ICONEXCLAMATION); + return 0; + } + } else { + PostMessage(hwnd, WM_COMMAND,MAKEWPARAM(CM_FILE_SAVEAS, 0), 0); + } + return 0; + } + case CM_FILE_SAVEAS: { + char szFileName[MAX_PATH]; + + if(GetFileName(hwnd, szFileName, TRUE)) { + if(!SaveFile(GetDlgItem(hwnd, IDC_CHILD_EDIT), szFileName)) { + MessageBox(hwnd, "Couldn't Save File.", "Error.",MB_OK | MB_ICONEXCLAMATION); + return 0; + } else { + SetWindowText(hwnd, szFileName); + } + } + return 0; + } + case CM_EDIT_UNDO: + SendDlgItemMessage(hwnd, IDC_CHILD_EDIT, EM_UNDO, 0, 0); + break; + case CM_EDIT_CUT: + SendDlgItemMessage(hwnd, IDC_CHILD_EDIT, WM_CUT, 0, 0); + break; + case CM_EDIT_COPY: + SendDlgItemMessage(hwnd, IDC_CHILD_EDIT, WM_COPY, 0, 0); + break; + case CM_EDIT_PASTE: + SendDlgItemMessage(hwnd, IDC_CHILD_EDIT, WM_PASTE, 0, 0); + break; + } + return 0; + } + } + return DefMDIChildProc(hwnd, Message, wParam, lParam); +} diff --git a/windows/templates/MDIEditor/MDIEditor_h.txt b/windows/templates/MDIEditor/MDIEditor_h.txt new file mode 100644 index 00000000..e033af66 --- /dev/null +++ b/windows/templates/MDIEditor/MDIEditor_h.txt @@ -0,0 +1,24 @@ +#define CM_WINDOW_TILEVERT 9080 +#define CM_WINDOW_TILEHORZ 9082 +#define CM_WINDOW_ARRANGE 9081 +#define CM_WINDOW_TILE 9080 +#define CM_WINDOW_CASCADE 9076 +#define CM_EDIT_PASTE 9079 +#define CM_EDIT_COPY 9078 +#define CM_EDIT_CUT 9077 +#define CM_EDIT_REDO 9076 +#define CM_EDIT_UNDO 9075 +#define CM_FILE_SAVEAS 9074 +#define CM_FILE_SAVE 9073 +#define CM_FILE_OPEN 9072 +#define CM_HELP_ABOUT 9072 +#define CM_FILE_EXIT 9071 +#define CM_FILE_NEW 9070 + +#define ID_STATUSBAR 4997 +#define ID_TOOLBAR 4998 + +#define ID_MDI_CLIENT 4999 +#define ID_MDI_FIRSTCHILD 50000 + +#define IDC_CHILD_EDIT 2000 diff --git a/windows/templates/MDIEditor/MDIEditor_rc.txt b/windows/templates/MDIEditor/MDIEditor_rc.txt new file mode 100644 index 00000000..8428b5d3 --- /dev/null +++ b/windows/templates/MDIEditor/MDIEditor_rc.txt @@ -0,0 +1,31 @@ +#include "main.h" + +MAIN MENU +{ + POPUP "&File" + { + MENUITEM "&New", CM_FILE_NEW + MENUITEM "&Open...", CM_FILE_OPEN + MENUITEM "&Save", CM_FILE_SAVE, GRAYED + MENUITEM "Save &As...", CM_FILE_SAVEAS, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", CM_FILE_EXIT + } + + POPUP "&Edit", GRAYED + { + MENUITEM "&Undo\tCtrl+Z", CM_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t\tCtrl+X", CM_EDIT_CUT + MENUITEM "&Copy\tCtrl+C", CM_EDIT_COPY + MENUITEM "&Paste\tCtrl+V", CM_EDIT_PASTE + } + + POPUP "&Window", GRAYED + { + MENUITEM "&Cascade", CM_WINDOW_CASCADE + MENUITEM "Tile &Horizontal", CM_WINDOW_TILEHORZ + MENUITEM "Tile &Vertical", CM_WINDOW_TILEVERT + MENUITEM "Arrange &Icons", CM_WINDOW_ARRANGE + } +} diff --git a/windows/templates/MDIEditor/Windows.ico b/windows/templates/MDIEditor/Windows.ico new file mode 100644 index 0000000000000000000000000000000000000000..b26825372ac48d8e51a3a08efc131094e5bf5638 GIT binary patch literal 4286 zcmeHJD{$LD5IrZLutvp!DKs?e7zzrS8X5|U1PE$cB6w6YC4z#U2@(`Ms3|janBjKc z*=t`Fog&F8$h4O{t?qoX;-ZMzcJ?3`D@pzYmQib{HxW<=8qcqfExJt`}!ua^zpyt7yi*BsXu%Pr)!0)%f7{r zyj@>%FTT(-mw#*wxAM31_wgfciP^PN`Nf~h-#-6RE7!W*xPLEx^a;HX;C<*q`y6Ax z@BE{$zW%rK*J(uCU~xedE+}5FDA@*-MQhT@h6>(OW-;yZl&T^lQ)&zFxAh19<^1>c z^jd#Ib+!8ghUcaRDrx}3HDc_6##|u!4PO}OW1HU>19}LZ8UpAEAi6f6&#ks$4jlz2 zxG{$EW1pNU#NP)w8`uL)hjv20Fn76q{I)oJ!QMVdJY5!CSjV}7wj&PAZPLyK{@wly zx33RwJYBr*8upIim$2LzZi(Zg@}myz8ceCf)coJ84`cW%))1Ygl}5 z@*(%|V_1Kn#qzsRc*WvegC7{8?Nj#Pdk^_x2(N3gjyn8J__*CT{nA^Pq1y=y;_^`o_oe8AU)$d+aKpO`AqDyQlEwPH*%#!X#fBK literal 0 HcmV?d00001 diff --git a/windows/templates/MDIEditor/info.template b/windows/templates/MDIEditor/info.template new file mode 100644 index 00000000..605ace77 --- /dev/null +++ b/windows/templates/MDIEditor/info.template @@ -0,0 +1,30 @@ +[Template] +ver=2 +Name=MDI Editor +Name[zh_CN]=MDI编辑器 +Icon=Windows.ico +Description=A Win32 MDI file editor +Description[zh_CN]=一个Win32多文档界面(MDI)文件编辑器 +Category=Win32 + +[Unit0] +CName=main.c +CppName=main.cpp +C=MDIEditor_c.txt +Cpp=MDIEditor_c.txt + +[Unit1] +CName=main.h +CppName=main.h +C=MDIEditor_h.txt +Cpp=MDIEditor_h.txt + +[Unit2] +CName=resource.rc +CppName=resource.rc +C=MDIEditor_rc.txt +Cpp=MDIEditor_rc.txt + +[Project] +UnitCount=3 +Type=0 diff --git a/windows/templates/OpenGL/OpenGL.txt b/windows/templates/OpenGL/OpenGL.txt new file mode 100644 index 00000000..58c1f1de --- /dev/null +++ b/windows/templates/OpenGL/OpenGL.txt @@ -0,0 +1,190 @@ +/************************** + * Includes + * + **************************/ + +#include +#include + + +/************************** + * Function Declarations + * + **************************/ + +LRESULT CALLBACK WndProc (HWND hWnd, UINT message, +WPARAM wParam, LPARAM lParam); +void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC); +void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC); + + +/************************** + * WinMain + * + **************************/ + +int WINAPI WinMain (HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int iCmdShow) +{ + WNDCLASS wc; + HWND hWnd; + HDC hDC; + HGLRC hRC; + MSG msg; + BOOL bQuit = FALSE; + float theta = 0.0f; + + /* register window class */ + wc.style = CS_OWNDC; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon (NULL, IDI_APPLICATION); + wc.hCursor = LoadCursor (NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); + wc.lpszMenuName = NULL; + wc.lpszClassName = "GLSample"; + RegisterClass (&wc); + + /* create main window */ + hWnd = CreateWindow ( + "GLSample", "OpenGL Sample", + WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE, + 0, 0, 256, 256, + NULL, NULL, hInstance, NULL); + + /* enable OpenGL for the window */ + EnableOpenGL (hWnd, &hDC, &hRC); + + /* program main loop */ + while (!bQuit) + { + /* check for messages */ + if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) + { + /* handle or dispatch messages */ + if (msg.message == WM_QUIT) + { + bQuit = TRUE; + } + else + { + TranslateMessage (&msg); + DispatchMessage (&msg); + } + } + else + { + /* OpenGL animation code goes here */ + + glClearColor (0.0f, 0.0f, 0.0f, 0.0f); + glClear (GL_COLOR_BUFFER_BIT); + + glPushMatrix (); + glRotatef (theta, 0.0f, 0.0f, 1.0f); + glBegin (GL_TRIANGLES); + glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f); + glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.87f, -0.5f); + glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.87f, -0.5f); + glEnd (); + glPopMatrix (); + + SwapBuffers (hDC); + + theta += 1.0f; + Sleep (1); + } + } + + /* shutdown OpenGL */ + DisableOpenGL (hWnd, hDC, hRC); + + /* destroy the window explicitly */ + DestroyWindow (hWnd); + + return msg.wParam; +} + + +/******************** + * Window Procedure + * + ********************/ + +LRESULT CALLBACK WndProc (HWND hWnd, UINT message, + WPARAM wParam, LPARAM lParam) +{ + + switch (message) + { + case WM_CREATE: + return 0; + case WM_CLOSE: + PostQuitMessage (0); + return 0; + + case WM_DESTROY: + return 0; + + case WM_KEYDOWN: + switch (wParam) + { + case VK_ESCAPE: + PostQuitMessage(0); + return 0; + } + return 0; + + default: + return DefWindowProc (hWnd, message, wParam, lParam); + } +} + + +/******************* + * Enable OpenGL + * + *******************/ + +void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC) +{ + PIXELFORMATDESCRIPTOR pfd; + int iFormat; + + /* get the device context (DC) */ + *hDC = GetDC (hWnd); + + /* set the pixel format for the DC */ + ZeroMemory (&pfd, sizeof (pfd)); + pfd.nSize = sizeof (pfd); + pfd.nVersion = 1; + pfd.dwFlags = PFD_DRAW_TO_WINDOW | + PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; + pfd.iPixelType = PFD_TYPE_RGBA; + pfd.cColorBits = 24; + pfd.cDepthBits = 16; + pfd.iLayerType = PFD_MAIN_PLANE; + iFormat = ChoosePixelFormat (*hDC, &pfd); + SetPixelFormat (*hDC, iFormat, &pfd); + + /* create and enable the render context (RC) */ + *hRC = wglCreateContext( *hDC ); + wglMakeCurrent( *hDC, *hRC ); + +} + + +/****************** + * Disable OpenGL + * + ******************/ + +void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC) +{ + wglMakeCurrent (NULL, NULL); + wglDeleteContext (hRC); + ReleaseDC (hWnd, hDC); +} diff --git a/windows/templates/OpenGL/Pizza.ico b/windows/templates/OpenGL/Pizza.ico new file mode 100644 index 0000000000000000000000000000000000000000..a098ba12ca2c6e87f1b499f0c6af58976447d9de GIT binary patch literal 4286 zcmchZA&lcj6o$PzvT#ePMeT((Ffgc9NF_tVP(wpQldEKC>4?h=jzqd%&nhx>Rb*&r zXq5#9hTZG`O*}a#+S}c`UOUmt*yEY`|M$N)&klkc{a(Hd_z&LR1;MvL5d0w1Q1FwC zao48qbaVNCJRa@;GEz4nz7%tg`15n77J^d z1_{m_*6Xz$b&viB>~Q#ZracDv*bjpZGJ1Sw3@mis@Aqf?jd+30T(I|;o`0$JeQ!~? zvGrs{S{`q#$`fnr%DQ%Eb(vY7gqCjC z7H_u~_~;KNc(vk#7W9lc`wTsp4}K<`gVqgwXXV5rk3&nMwQaBPz5n2YO{}`Eb6R*k zoEFcC&4iDi+yne7Nf@vsj!8acSH3#6eis9L7<(Q{}c(zBwyW+sVj3#>+gl zO4@=+V}BYxxf-k(m;GpWiR$70XsI|vNovdGLV6S~cXGu94xP@5(_+rUpW#_g4LBT* z&JSuJ`F=t_;d71u4qq|Dr&TjpP!1M%qgBJ+ws~R6uCdi}X>q)Dc|kr<&xqGNCO(dH zZP*)M!KYp0pZ(W7G%Tvd7RypKE4E-=St%_#S(FyGQmtOAj%=c>tJ#@igOMBLEqj6E z@i{|qdJO;CfAp>U!OC54%S~fpx3{R@Tiom|Z%51P&a$GiTzH}C9r+4}Liero@b4PW z;aUDm7as%qPH_!3y`|&9mW8f!*;;(c(N^NKC_5_@r)>s@Q1K1VX9axX!g+B1KcPSV z)8_bt&Q6ll7OZ*;l1{j_-Nn*BS8l|;-D~`gK51>8x3-Kj#YXQwoiENU`9Y3yR-f`8 zp4a%Sp%$&O-r{<+cF;R4s}zILZl%j2YAh**EBviub63H$w%dEOqhvyZDc_z?6SA8Ri8_bmw7_LQ~rZ>LOsRcIGqQ0&G)Ih-b&>|CVk7MwX$wxwfkP^R5RFT zzJ|5W@t=7fAHKe(o@?y%&hhcs6Vr(!>wL=iZ%NOY9zL|k>fg2h-Ve`-dyMAC=Dm9` z{mnTr#5#C9hClb8YjOt-+oM+We%|Ts z<3HMXeq4hKAHTn!>G6Gxn8zH}c*94=x%awX@8kFLJ!?ESuJNB3_~*X&_}+gX2iAJ+ z8S@%5#=YO$?{nSz`S3)4xL?oV{u=+GIbS*kCf|%WAmQthwQD!f0O+#d++S!&HMOoU4J9{?&jUEf4+DVeE9j@?T6QY Ln0@~$2!8wrB`;Om literal 0 HcmV?d00001 diff --git a/windows/templates/OpenGL/info.template b/windows/templates/OpenGL/info.template new file mode 100644 index 00000000..3e2f82ee --- /dev/null +++ b/windows/templates/OpenGL/info.template @@ -0,0 +1,19 @@ +[Template] +ver=2 +Name=OpenGL +Icon=Pizza.ico +Description=A basic OpenGL program +Description[zh_CN]=一个基本的OpenGL程序 +Category=3D +Category[zh_CN]=3D + +[Unit0] +CName=main.c +CppName=main.cpp +C=OpenGL.txt +Cpp=OpenGL.txt + +[Project] +UnitCount=1 +Type=0 +Linker=-lopengl32 diff --git a/windows/templates/OpenMP/File Management.ico b/windows/templates/OpenMP/File Management.ico new file mode 100644 index 0000000000000000000000000000000000000000..09099e21774f7cdcb6188b71b06eee6b45079345 GIT binary patch literal 766 zcmb7?I}XAy42E5Vl%9ZGi1SMSVj126eq?x +#include + +int main() { + + int i; + + #pragma omp parallel num_threads(2) + printf("Hi, I'm thread number %d!\n",omp_get_thread_num()); + + #pragma omp parallel for num_threads(2) + for(i = 0;i < 20;i++) { + printf("\nThread number %d, executing iteration %d...",omp_get_thread_num(),i); + } + + return 0; +} diff --git a/windows/templates/OpenMP/OpenMP_cpp.txt b/windows/templates/OpenMP/OpenMP_cpp.txt new file mode 100644 index 00000000..44eff209 --- /dev/null +++ b/windows/templates/OpenMP/OpenMP_cpp.txt @@ -0,0 +1,26 @@ +#include +#include + +// not using iostream here due to output ordering issues + +// iostream tends to output each part between <<'s separately to the console, +// which can lead to random output if multiple threads are doing the same +// thing. + +// printf will generally output the whole result string in one go, so results +// of separate printf calls, even from different threads, will remain intact + +// Another fix, other than using printf, would be to give each thread its own +// place to store output temporarily (a stringstream), and then output the whole +// result in one go. + +int main() { + + #pragma omp parallel num_threads(2) + printf("Hi, I'm thread number %d!\n",omp_get_thread_num()); + + #pragma omp parallel for num_threads(2) + for(int i = 0;i < 20;i++) { + printf("\nThread number %d, executing iteration %d...",omp_get_thread_num(),i); + } +} \ No newline at end of file diff --git a/windows/templates/OpenMP/info.template b/windows/templates/OpenMP/info.template new file mode 100644 index 00000000..590417cf --- /dev/null +++ b/windows/templates/OpenMP/info.template @@ -0,0 +1,21 @@ +[Template] +ver=2 +Name=OpenMP +Icon=File Management.ico +Description=A OpenMP multithreading example +Description[zh_CN]=一个OpenMP多线程示例 +Category=Console +Category[zh_CN]=控制台 + +[Unit0] +CName=main.c +CppName=main.cpp +C=OpenMP_c.txt +Cpp=OpenMP_cpp.txt + +[Project] +UnitCount=1 +Type=1 +Compiler=-fopenmp +CppCompiler=-fopenmp +Linker=-lgomp diff --git a/windows/templates/Single Dialog Application/Single Dialog Application.ico b/windows/templates/Single Dialog Application/Single Dialog Application.ico new file mode 100644 index 0000000000000000000000000000000000000000..94551655313deeeb2ef369973a2f74d8b3dda9d1 GIT binary patch literal 766 zcmdr}xeb6Y3_K76P*JC347Q3p(uJ`y0D~|BojC&qmXIirC^+Z*o$@FKDq09FeS@V2 zIsiQx$bq!JAyK{aqbBM6!@M ZpKbASl=%T~$LGJ>S8vb0+wX5s-2ja_Vk`gv literal 0 HcmV?d00001 diff --git a/windows/templates/Single Dialog Application/Single Dialog Application.project.ico b/windows/templates/Single Dialog Application/Single Dialog Application.project.ico new file mode 100644 index 0000000000000000000000000000000000000000..94551655313deeeb2ef369973a2f74d8b3dda9d1 GIT binary patch literal 766 zcmdr}xeb6Y3_K76P*JC347Q3p(uJ`y0D~|BojC&qmXIirC^+Z*o$@FKDq09FeS@V2 zIsiQx$bq!JAyK{aqbBM6!@M ZpKbASl=%T~$LGJ>S8vb0+wX5s-2ja_Vk`gv literal 0 HcmV?d00001 diff --git a/windows/templates/Single Dialog Application/Single_Dialog_Application_main.c.txt b/windows/templates/Single Dialog Application/Single_Dialog_Application_main.c.txt new file mode 100644 index 00000000..303c4562 --- /dev/null +++ b/windows/templates/Single Dialog Application/Single_Dialog_Application_main.c.txt @@ -0,0 +1,42 @@ +#include +#include "resource.h" + +HINSTANCE hInst; + +LRESULT MainDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { + MSG msg; + HWND hMainDlg = NULL; + + hInst = hInstance; + hMainDlg = CreateDialog(hInstance, (LPCTSTR)IDD_MAIN_DIALOG, 0,(DLGPROC)MainDlgProc); + ShowWindow(hMainDlg, nCmdShow); + while (GetMessage(&msg, NULL, 0, 0)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + return 0; +} + +LRESULT MainDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { + switch (message) { + case WM_INITDIALOG : + return TRUE ; + case WM_COMMAND : + switch (LOWORD (wParam)) { + case IDOK : + case IDCANCEL : + DestroyWindow(hDlg); + return TRUE ; + } + break ; + case WM_CLOSE: + DestroyWindow(hDlg); + return TRUE; + case WM_DESTROY: + PostQuitMessage(0); + return TRUE; + }; + return FALSE;//FALSEȱʡԻDefDlgProc(),ʾûдϢ +} diff --git a/windows/templates/Single Dialog Application/Single_Dialog_Application_resource.h.txt b/windows/templates/Single Dialog Application/Single_Dialog_Application_resource.h.txt new file mode 100644 index 00000000..099111ef --- /dev/null +++ b/windows/templates/Single Dialog Application/Single_Dialog_Application_resource.h.txt @@ -0,0 +1,5 @@ +#ifndef IDC_STATIC +#define IDC_STATIC (-1) +#endif + +#define IDD_MAIN_DIALOG 101 \ No newline at end of file diff --git a/windows/templates/Single Dialog Application/Single_Dialog_Application_resource.rc.txt b/windows/templates/Single Dialog Application/Single_Dialog_Application_resource.rc.txt new file mode 100644 index 00000000..c36ab46b --- /dev/null +++ b/windows/templates/Single Dialog Application/Single_Dialog_Application_resource.rc.txt @@ -0,0 +1,24 @@ +// Generated by ResEdit 1.6.5 +// Copyright (C) 2006-2015 +// http://www.resedit.net + +#include +#include +#include +#include "resource.h" + + + + +// +// Dialog resources +// +LANGUAGE 0, SUBLANG_NEUTRAL +IDD_MAIN_DIALOG DIALOG 0, 0, 186, 95 +STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "Ms Shell Dlg" +{ + PUSHBUTTON "Cancel", IDCANCEL, 129, 24, 50, 14, 0, WS_EX_LEFT + DEFPUSHBUTTON "OK", IDOK, 129, 7, 50, 14, 0, WS_EX_LEFT +} diff --git a/windows/templates/Single Dialog Application/info.template b/windows/templates/Single Dialog Application/info.template new file mode 100644 index 00000000..8e7ac030 --- /dev/null +++ b/windows/templates/Single Dialog Application/info.template @@ -0,0 +1,33 @@ +[Template] +ver=2 +Name=Single Dialog Application +Name[zh_CN]=单对话框程序 +Icon=Single Dialog Application.ico +Description=An Appliction use a dialog as the main UI +Description[zh_CN]=使用一个对话框作为主用户界面简单程序 +Category=Win32 + +[Unit0] +CName=main.c +C=Single_Dialog_Application_main.c.txt + +[Unit1] +CName=resource.rc +C=Single_Dialog_Application_resource.rc.txt + +[Unit2] +CName=resource.h +C=Single_Dialog_Application_resource.h.txt + +[Project] +UnitCount=3 +Type=0 +IsCpp=0 +Compiler= +CppCompiler= +Linker= +CompilerSettings=0000000000000000000000000 +CompilerSet=0 +IncludeVersionInfo=0 +SupportXPThemes=0 +Icon=Single Dialog Application.project.ico diff --git a/windows/templates/StdThread/Software.ico b/windows/templates/StdThread/Software.ico new file mode 100644 index 0000000000000000000000000000000000000000..283fe4e087bfd21e572c8487cd2aa953c126f721 GIT binary patch literal 10278 zcmeI2PiP#;6^EZJWv4?-WGmpy3|P@2v2V`y$$Rn|Uq$xfv-je@4VVzn91QA{H8%x? z82XZ3M6x15x%jNZEQB25-rQ_oVi*u)!8EK4JF8(6w(`AK-90@$J)_vk=CXP-)z$Ut z{rUB)>Z&&-i7d%Gvc7(adPQVeBodKJmwfxy5^Z=lZuoZmj>sp7t*;C6feZqXpZq}k z^Y#x#{_!K#_wD$5$Zv>T!zLG%>aqKIu+{$1upwzY8%1xwAM9v**Bir0 zZ1TI?xyfFv-Lm`3J4Qb*+7D8r|6TiUHGB1T-Jijd(!T|#-`_3pO`gXDHSk76->4YF z?Ytcn5ur^GuTr%TWY)?O_cEXiCuNEIvYc@LuSr?ve)UbuH|Q|)R$VMtannfG;POh? zJ5bF3xKUD>^zeP_`5&OGRLmcc**qWj9|SEW<|!{ytn)>K*<)Ur4)aOpYcF8lewn7d zn08rbdHc>C<1-{$n*ptL6k>75@4f3jeScHrBY654AIV_pXOu5wxFmOmOJB-xnfvAU z-W@K#zd2--hReT|6Y8;!+8omO-JpC(DdV?7qmknOE`E(RrahZ*)qJS#+G+LZN(#y}VzRdi^*!9j{J4&g9*x8rqKCH1ZJwCzrN#t%+6SmBIR%tFBvW9W|s-(sOYVAma3AQtld zvrMjIZ)YafJ2_vCRjIG*D&&zF7P|!b`{0-4{1Jc?`*pPrw3n~1@V6&mh=N8-&Tj^JJoGxOsHc^xmP!NuOk4*377f3x(~{suYDq1FR&8mQG3aT=(r7r8XkHQ4KvTNKTE zjoxDa8T@@9Cx87!R#sLd2m-ly@uFP5d|9qsxgwoTM>aM#}oJ-wfe}@IrW@@)%JSiQq@v zMDQc{5qwok;3x1C8VURaK9!{KQ}`+T6h;c)(RQ?5YMw)`A;v=tg(!vO4VOQv9W0OTm%i&xTfU5Q7vPsp87rN|lN2ne#>24aY|v4F2L=ZQ2L=ZQ2L=ZQ zn@(Uz!QjB)z>tCgGZf^(;K1O(;J|=s3Vbj)FgP$c066@o7;`8(gd%K2v?Fjhv#m0b z{8)Z3_wL;j)?#_|=#e~r{8*koeJW3$JdqbKUdYRrFXj07SYEw)C9hwl4hc-?|@d=vzFS`rnVN-UPJd<#+%>CtY@!*);gNAcQTdOYtPbJOL>LBs3lqb zJ5s6$v|GY=)R8t{6)pr6!yXnU0^D~bD`*}@wb05&tu-&uZXX>T8R$+Yf8sSG>*gUY zT)5yR^ucrLcDuft{)Z1Qm{{1Xw zz~q%EfmoNGKX9WnMYFZ3^9M~eNHdn|h1{$-gZNg@A8z3PLj_gjFW;xpNb%g?&*%Az zrd8+p%X$7nj`1DLUmBN-`OL{Cn#+`{W#dgZvs6fP0yI^HoMJw8k@mfoMW{knS<+{2 zyIHF}@>_%DQz&G4duGE>Mz^v}SbpUdG(T!CU7tvqV^#2o<_N2iDqIv)ULiGGuPco5 zgk`b9RG`)V84vA~LH0YIqDXkM(NT+hEvIroG;JmF_RywK$ny+Gn&P$dk1Do~%3hxf zRuV#e=C8jd5F!sQ;!B3&6S_Zk;}#cd7thUX|u2Q=gVvEnNyi-A1stF#C>f_XUeOO z+>a?N!c(ztDkveTJKlv6k*_^zGGBa0osMyCc_8Z?` zA+6bO6+2SaUU>$i+U6wnpwhOjyVACOw`_A<@2PyiVi&`kJEnZ9Zau|R1J=o5wQw@& N|L. Use MinGW64 builds like TDM-GCC instead. +// C does not support this magic ;) \ No newline at end of file diff --git a/windows/templates/StdThread/StdThread_cpp.txt b/windows/templates/StdThread/StdThread_cpp.txt new file mode 100644 index 00000000..6138bd5a --- /dev/null +++ b/windows/templates/StdThread/StdThread_cpp.txt @@ -0,0 +1,43 @@ +// Please note that MinGW32 compilers currently do not support . Use MinGW64 builds like TDM-GCC instead. + +#include +using std::thread; +#include +using std::vector; +#include + +struct ThreadItem { + char* result; // could've used stringstream too, but don't like their syntax + thread worker; +}; + +void* ThreadFunction(char** result) { + *result = new char[256]; + snprintf(*result,256,"Hello World from thread ID %d", + std::this_thread::get_id()); +} + +int main() { + // Get the amount of "processing units" + int n = std::thread::hardware_concurrency(); + + // Create array of threads + vector threadlist; + threadlist.resize(n); + + // Spawn a thread for each core + for(int i = 0;i < n;i++) { + threadlist[i].worker = thread(ThreadFunction,&threadlist[i].result); // pass rand() as data argument + } + + // Wait for them all to finish + for(int i = 0;i < n;i++) { + threadlist[i].worker.join(); + } + + // Present their calculation results + printf("Results:\n"); + for(int i = 0;i < n;i++) { + printf("%s\n",threadlist[i].result); + } +} \ No newline at end of file diff --git a/windows/templates/StdThread/info.template b/windows/templates/StdThread/info.template new file mode 100644 index 00000000..050e0a80 --- /dev/null +++ b/windows/templates/StdThread/info.template @@ -0,0 +1,21 @@ +[Template] +ver=2 +Name=std::thread +Icon=Software.ico +Description=A C++ multithreading example +Description[zh_CN]=一个C++多线程示例 +Category=Console +Category[zh_CN]=控制台 + +[Unit0] +CName=main.c +CppName=main.cpp +C=StdThread_c.txt +Cpp=StdThread_cpp.txt + +[Project] +UnitCount=1 +Type=1 +Compiler= +CppCompiler=-std=gnu++11 +Linker= diff --git a/windows/templates/Turtle/CL_Turtle.ico b/windows/templates/Turtle/CL_Turtle.ico new file mode 100644 index 0000000000000000000000000000000000000000..b6d9382546c7c4ffeb30d2a010ed5b8955c7c540 GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/windows/templates/Turtle/CL_Turtle_cpp.txt b/windows/templates/Turtle/CL_Turtle_cpp.txt new file mode 100644 index 00000000..68a520a9 --- /dev/null +++ b/windows/templates/Turtle/CL_Turtle_cpp.txt @@ -0,0 +1,27 @@ +#include + +int main() { + int n; + initWorld(800,600); + +// Press F2 toggle display of grids +// Press F3 toggle display of the turtle +// Press F5 capture screen + + setSpeed(500); +// setRewind(true); +// setImmediate(true); + setPenSize(1); + + n=50; + for (int i=0;i + +static char g_szClassName[] = "MyWindowClass"; +static HINSTANCE g_hInst = NULL; + +const UINT idTimer1 = 1; +UINT nTimerDelay = 10; + +HBITMAP hbmBall, hbmMask; +BITMAP bm; + +int ballX, ballY; +int deltaX, deltaY; + +int deltaValue = 4; + +void EraseBall(HDC hdc) +{ + RECT rc; + rc.left = ballX; + rc.top = ballY; + rc.right = ballX + bm.bmWidth; + rc.bottom = ballY + bm.bmHeight; + FillRect(hdc, &rc, (HBRUSH)(COLOR_BTNFACE+1)); +} + +void DrawBall(HDC hdc) +{ + HDC hdcMemory; + hdcMemory = CreateCompatibleDC(hdc); + + SelectObject(hdcMemory, hbmMask); + BitBlt(hdc, ballX, ballY, bm.bmWidth, bm.bmHeight, hdcMemory, 0, 0, SRCAND); + + SelectObject(hdcMemory, hbmBall); + BitBlt(hdc, ballX, ballY, bm.bmWidth, bm.bmHeight, hdcMemory, 0, 0, SRCPAINT); + + DeleteDC(hdcMemory); +} + +void UpdateBall(HWND hwnd) +{ + RECT rc; + GetClientRect(hwnd, &rc); + + ballX += deltaX; + ballY += deltaY; + + if(ballX < 0){ + ballX = 0; + deltaX = deltaValue; + } + else if(ballX + bm.bmWidth > rc.right){ + ballX = rc.right - bm.bmWidth; + deltaX = -deltaValue; + } + if(ballY < 0){ + ballY = 0; + deltaY = deltaValue; + } + else if(ballY + bm.bmHeight > rc.bottom){ + ballY = rc.bottom - bm.bmHeight; + deltaY = -deltaValue; + } +} + +LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) +{ + switch(Message) + { + case WM_CREATE: + hbmBall = LoadBitmap(g_hInst, "BALLBMP"); + hbmMask = LoadBitmap(g_hInst, "MASKBMP"); + if(!hbmBall || !hbmMask){ + MessageBox(hwnd, "Load of resources failed.", "Error", + MB_OK | MB_ICONEXCLAMATION); + return -1; + } + + GetObject(hbmBall, sizeof(bm), &bm); + SetTimer(hwnd, idTimer1, nTimerDelay, NULL); + + ballX = 0; + ballY = 0; + deltaX = deltaValue; + deltaY = deltaValue; + + break; + case WM_TIMER: + if(hbmBall && hbmMask) + { + HDC hdcWindow; + hdcWindow = GetDC(hwnd); + + EraseBall(hdcWindow); + UpdateBall(hwnd); + DrawBall(hdcWindow); + + ReleaseDC(hwnd, hdcWindow); + } + break; + case WM_PAINT: + if(hbmBall && hbmMask) + { + PAINTSTRUCT ps; + HDC hdcWindow; + hdcWindow = BeginPaint(hwnd, &ps); + + DrawBall(hdcWindow); + + EndPaint(hwnd, &ps); + } + break; + case WM_CLOSE: + DestroyWindow(hwnd); + break; + case WM_DESTROY: + KillTimer(hwnd, idTimer1); + + DeleteObject(hbmBall); + DeleteObject(hbmMask); + PostQuitMessage(0); + break; + default: + return DefWindowProc(hwnd, Message, wParam, lParam); + } + return 0; +} + + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPSTR lpCmdLine, int nCmdShow) +{ + WNDCLASSEX WndClass; + HWND hwnd; + MSG Msg; + + g_hInst = hInstance; + + WndClass.cbSize = sizeof(WNDCLASSEX); + WndClass.style = 0; + WndClass.lpfnWndProc = WndProc; + WndClass.cbClsExtra = 0; + WndClass.cbWndExtra = 0; + WndClass.hInstance = g_hInst; + WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); + WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); + WndClass.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); + WndClass.lpszMenuName = NULL; + WndClass.lpszClassName = g_szClassName; + WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); + + if(!RegisterClassEx(&WndClass)) + { + MessageBox(0, "Window Registration Failed!", "Error!", + MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL); + return 0; + } + + hwnd = CreateWindowEx( + WS_EX_CLIENTEDGE, + g_szClassName, + "A Bitmap Program", + WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, CW_USEDEFAULT, 320, 240, + NULL, NULL, g_hInst, NULL); + + if(hwnd == NULL) + { + MessageBox(0, "Window Creation Failed!", "Error!", + MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL); + return 0; + } + + ShowWindow(hwnd, nCmdShow); + UpdateWindow(hwnd); + + while(GetMessage(&Msg, NULL, 0, 0)) + { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } + return Msg.wParam; +} + diff --git a/windows/templates/WinAnim/WinAnim_rc.txt b/windows/templates/WinAnim/WinAnim_rc.txt new file mode 100644 index 00000000..82988149 --- /dev/null +++ b/windows/templates/WinAnim/WinAnim_rc.txt @@ -0,0 +1,2 @@ +BALLBMP BITMAP "ball.bmp" // can be found in the Templates folder, please copy to the project folder +MASKBMP BITMAP "ballmask.bmp" // as above \ No newline at end of file diff --git a/windows/templates/WinAnim/Windows.ico b/windows/templates/WinAnim/Windows.ico new file mode 100644 index 0000000000000000000000000000000000000000..b26825372ac48d8e51a3a08efc131094e5bf5638 GIT binary patch literal 4286 zcmeHJD{$LD5IrZLutvp!DKs?e7zzrS8X5|U1PE$cB6w6YC4z#U2@(`Ms3|janBjKc z*=t`Fog&F8$h4O{t?qoX;-ZMzcJ?3`D@pzYmQib{HxW<=8qcqfExJt`}!ua^zpyt7yi*BsXu%Pr)!0)%f7{r zyj@>%FTT(-mw#*wxAM31_wgfciP^PN`Nf~h-#-6RE7!W*xPLEx^a;HX;C<*q`y6Ax z@BE{$zW%rK*J(uCU~xedE+}5FDA@*-MQhT@h6>(OW-;yZl&T^lQ)&zFxAh19<^1>c z^jd#Ib+!8ghUcaRDrx}3HDc_6##|u!4PO}OW1HU>19}LZ8UpAEAi6f6&#ks$4jlz2 zxG{$EW1pNU#NP)w8`uL)hjv20Fn76q{I)oJ!QMVdJY5!CSjV}7wj&PAZPLyK{@wly zx33RwJYBr*8upIim$2LzZi(Zg@}myz8ceCf)coJ84`cW%))1Ygl}5 z@*(%|V_1Kn#qzsRc*WvegC7{8?Nj#Pdk^_x2(N3gjyn8J__*CT{nA^Pq1y=y;_^`o_oe8AU)$d+aKpO`AqDyQlEwPH*%#!X#fBK literal 0 HcmV?d00001 diff --git a/windows/templates/WinAnim/info.template b/windows/templates/WinAnim/info.template new file mode 100644 index 00000000..a3ef1cf7 --- /dev/null +++ b/windows/templates/WinAnim/info.template @@ -0,0 +1,24 @@ +[Template] +ver=2 +Name=Animation Example +Name[zh_CN]=动画示例 +Icon=Windows.ico +Description=A Win32 painting example +Description[zh_CN]=一个Win32绘图示例 +Category=Win32 + +[Unit0] +CName=main.c +CppName=main.cpp +C=WinAnim_c.txt +Cpp=WinAnim_c.txt + +[Unit1] +CName=resource.rc +CppName=resource.rc +C=WinAnim_rc.txt +Cpp=WinAnim_rc.txt + +[Project] +UnitCount=2 +Type=0 diff --git a/windows/templates/epitrochoid/epitrochoid.ico b/windows/templates/epitrochoid/epitrochoid.ico new file mode 100644 index 0000000000000000000000000000000000000000..34a221ab0604f5e70b45c901ec6f18305cd1ce95 GIT binary patch literal 180542 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 +#include +#include + +#define RAYGUI_IMPLEMENTATION +#include + +void updateRadius(int baseL, int outerL, int pointL, int *pBaseR, int *pOuterR, int *pPointR) { + int totalL=baseL+outerL; + if (pointL>outerL) + totalL+=pointL; + else + totalL+=outerL; + int totalR = 420; + int remainder = totalR % totalL; + if (remainder!=0) { + if (remainder < totalL / 2) { + totalR -= remainder; + } else { + totalR += ( totalL - remainder); + } + } + *pBaseR = (totalR) / totalL * baseL; + *pOuterR = (totalR) / totalL * outerL; + *pPointR = (totalR) / totalL * pointL; +} + + +int main() { + int baseL=2; + int outerL=13; + int pointL=3; + int baseR,outerR,pointR; + int cx=450,cy=450; + int speed = 1; + Color trackColor = BLUE; + updateRadius(baseL, outerL, pointL, &baseR, &outerR, & pointR); + InitWindow(1300,900,"Epitrochoid"); + SetTraceLogLevel(LOG_WARNING); + SetTargetFPS(60); + GuiSetStyle(DEFAULT,TEXT_SIZE,20); + + Image trackImage=GenImageColor(900,900,WHITE); + //border + ImageFillRectangleEx(&trackImage,0,0,900,900,LIGHTGRAY); + ImageFillRectangleEx(&trackImage,5,5,890,890,WHITE); + + Image circlesImage = GenImageColor(900,900,BLANK); + float r=0; + int lastx,lasty; + lasty=cy; + lastx=cx+(baseR+outerR-pointR); + int frameCount = 0; + while(!WindowShouldClose()) { + //GUI + int newOuterL = GuiSliderBar((Rectangle){ 70, 20, 200, 30 },"Outer",TextFormat("%i", (int)outerL), outerL, 1, 50); + int newBaseL = GuiSliderBar((Rectangle){ 70, 60, 200, 30 },"Base",TextFormat("%i", (int)baseL), baseL, 1, 50); + int newPointL = GuiSliderBar((Rectangle){ 70, 100, 200, 30 },"Point",TextFormat("%i", (int)pointL), pointL, 1, 50); + speed = GuiSliderBar((Rectangle){ 70, 150, 200, 30 },"Speed",TextFormat("%i", (int)speed), speed, 1, 50); + GuiLabel((Rectangle){ 20, 220, 80, 30 },TextFormat("Color: 0x%X%X%X ",(int)(trackColor.r), (int)(trackColor.g),(int)(trackColor.b))); + trackColor= GuiColorPicker((Rectangle){ 50, 250, 196, 192 }, NULL, trackColor); + int doClear = GuiButton((Rectangle){ 120, 700, 80, 30 },"Clear"); + if (newOuterL!=outerL || newBaseL!=baseL || newPointL!=pointL) { + if (newOuterL!=outerL) + pointL=newOuterL; + else + pointL=newPointL; + outerL=newOuterL; + baseL=newBaseL; + updateRadius(baseL, outerL, pointL, &baseR, &outerR, & pointR); + lasty=cy; + lastx=cx+(baseR+outerR-pointR); + r=0; + ImageClearBackground(&trackImage,WHITE); + ImageFillRectangleEx(&trackImage,0,0,900,900,LIGHTGRAY); + ImageFillRectangleEx(&trackImage,5,5,890,890,WHITE); + } else if (doClear) { + ImageClearBackground(&trackImage,WHITE); + ImageFillRectangleEx(&trackImage,0,0,900,900,LIGHTGRAY); + ImageFillRectangleEx(&trackImage,5,5,890,890,WHITE); + } + //update datas + r+=0.01; + float outerCX=cx+ (baseR+outerR)*cos(r); + float outerCY=cy+ (baseR+outerR)*sin(r); + float theta = r * (baseL+outerL) / outerL; + int x=round(outerCX - pointR * cos(theta)); + int y=round(outerCY - pointR * sin(theta)); + + //update image (in CPU) + //ImageClearBackground(&trackImage,WHITE); + ImageDrawLineEx(&trackImage,lastx,lasty,x,y,3,trackColor); + + frameCount++; + if (frameCount>=speed) { + ImageClearBackground(&circlesImage,BLANK); + //base circle + ImageDrawCircleEx(&circlesImage,cx,cy,baseR,1,LIGHTRED); + ImageDrawCircleEx(&circlesImage,outerCX,outerCY,outerR,1,LIGHTSLATEGRAY); + ImageDrawLineEx(&circlesImage,cx,cy,outerCX,outerCY,1,LIGHTRED); + ImageDrawLineEx(&circlesImage,x,y,outerCX,outerCY,1,LIGHTSLATEGRAY); + ImageDrawPointEx(&circlesImage,x,y,7,RED); + + //Drawing in GPU + Texture trackTexture = LoadTextureFromImage(trackImage); + Texture circlesTexture = LoadTextureFromImage(circlesImage); + BeginDrawing(); + ClearBackground(WHITE); + DrawTexture(trackTexture,300,0,WHITE); + DrawTexture(circlesTexture,300,0,WHITE); + EndDrawing(); + UnloadTexture(circlesTexture); + UnloadTexture(trackTexture); + frameCount=0; + } + + lastx=x; + lasty=y; + } + + //Clean up + UnloadImage(circlesImage); + UnloadImage(trackImage); + CloseWindow(); +} diff --git a/windows/templates/epitrochoid/info.template b/windows/templates/epitrochoid/info.template new file mode 100644 index 00000000..43a2b337 --- /dev/null +++ b/windows/templates/epitrochoid/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=Epitrochoid +Name[zh_CN]=外旋轮线 +Icon=Epitrochoid.ico +Description=A simple epitrochoid drawing app +Description[zh_CN]=外旋轮线绘制程序 +Category=Game +Category[zh_CN]=游戏 + +[Unit0] +CName=main.c +C=epitrochoid_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lrdrawing -lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/hypotrochoid/hypotrochoid.ico b/windows/templates/hypotrochoid/hypotrochoid.ico new file mode 100644 index 0000000000000000000000000000000000000000..bff8482f6a25bcd0f6642cd4295f7f4bd55b6472 GIT binary patch literal 96662 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 +#include +#include + +#define RAYGUI_IMPLEMENTATION +#include + +void updateRadius(int baseL, int innerL,int pointL, int *pBaseR, int *pInnerR, int *pPointR) { + int totalL=baseL; + if (innerL>baseL) { + if (innerL>pointL) + totalL = (2*innerL-baseL); + else { + totalL = (innerL+pointL-baseL); + } + } else { + if (pointL>innerL) + totalL = baseL-innerL+pointL; + } + int totalR = 420; + int remainder = totalR % totalL; + if (remainder!=0) { + if (remainder < totalL / 2) { + totalR -= remainder; + } else { + totalR += ( totalL - remainder); + } + } + *pBaseR = totalR / totalL * baseL; + *pInnerR = totalR / totalL * innerL; + *pPointR = totalR / totalL * pointL; +} + + +int main() { + int baseL=6; + int innerL=3; + int pointL=6; + int baseR,innerR,pointR; + int cx=450,cy=450; + int speed = 1; + Color trackColor = BLUE; + updateRadius(baseL, innerL, pointL, &baseR, &innerR, &pointR); + InitWindow(1300,900,"Hypotrochoid"); + SetTraceLogLevel(LOG_WARNING); + SetTargetFPS(60); + GuiSetStyle(DEFAULT,TEXT_SIZE,20); + + Image trackImage=GenImageColor(900,900,WHITE); + //border + ImageFillRectangleEx(&trackImage,0,0,900,900,LIGHTGRAY); + ImageFillRectangleEx(&trackImage,5,5,890,890,WHITE); + + Image circlesImage = GenImageColor(900,900,BLANK); + float r=0; + int lastx,lasty; + bool skip=true; + lasty=cy; + lastx=cx+baseR; + int frameCount = 0; + while(!WindowShouldClose()) { + //GUI + int newInnerL = GuiSliderBar((Rectangle){ 70, 20, 200, 30 },"Inner",TextFormat("%i", (int)innerL), innerL, 1, 50); + int newBaseL = GuiSliderBar((Rectangle){ 70, 60, 200, 30 },"Base",TextFormat("%i", (int)baseL), baseL, 1, 50); + int newPointL = GuiSliderBar((Rectangle){ 70, 100, 200, 30 },"Point",TextFormat("%i", (int)pointL), pointL, 1, 50); + speed = GuiSliderBar((Rectangle){ 70, 150, 200, 30 },"Speed",TextFormat("%i", (int)speed), speed, 1, 50); + GuiLabel((Rectangle){ 20, 220, 80, 30 },TextFormat("Color: 0x%X%X%X ",(int)(trackColor.r), (int)(trackColor.g),(int)(trackColor.b))); + trackColor= GuiColorPicker((Rectangle){ 50, 250, 196, 192 }, NULL, trackColor); + int doClear = GuiButton((Rectangle){ 120, 700, 80, 30 },"Clear"); + if (newInnerL!=innerL || newBaseL!=baseL || newPointL!=pointL) { + if (newInnerL!=innerL) + pointL=newInnerL; + else + pointL=newPointL; + innerL=newInnerL; + baseL=newBaseL; + updateRadius(baseL, innerL, pointL, &baseR, &innerR, &pointR); + r=0; + skip=true; + ImageClearBackground(&trackImage,WHITE); + ImageFillRectangleEx(&trackImage,0,0,900,900,LIGHTGRAY); + ImageFillRectangleEx(&trackImage,5,5,890,890,WHITE); + } else if (doClear) { + ImageClearBackground(&trackImage,WHITE); + ImageFillRectangleEx(&trackImage,0,0,900,900,LIGHTGRAY); + ImageFillRectangleEx(&trackImage,5,5,890,890,WHITE); + } + //update datas + float innerCX=cx+ (baseR-innerR)*cos(r); + float innerCY=cy+ (baseR-innerR)*sin(r); + int x,y; + float theta; + if (innerL=speed) { + ImageClearBackground(&circlesImage,BLANK); + //base circle + ImageDrawCircleEx(&circlesImage,cx,cy,baseR,1,LIGHTRED); + ImageDrawCircleEx(&circlesImage,innerCX,innerCY,innerR,1,LIGHTGRAY); + ImageDrawLineEx(&circlesImage,innerCX,innerCY,cx,cy,1,LIGHTRED); + ImageDrawLineEx(&circlesImage,innerCX,innerCY,x,y,1,LIGHTGRAY); + ImageDrawPointEx(&circlesImage,x,y,7,RED); + + //Drawing in GPU + Texture trackTexture = LoadTextureFromImage(trackImage); + Texture circlesTexture = LoadTextureFromImage(circlesImage); + BeginDrawing(); + ClearBackground(WHITE); + DrawTexture(trackTexture,300,0,WHITE); + DrawTexture(circlesTexture,300,0,WHITE); + EndDrawing(); + UnloadTexture(circlesTexture); + UnloadTexture(trackTexture); + frameCount=0; + } + lastx=x; + lasty=y; + skip=false; + r+=0.01; + } + + //Clean up + UnloadImage(circlesImage); + UnloadImage(trackImage); + CloseWindow(); +} diff --git a/windows/templates/hypotrochoid/info.template b/windows/templates/hypotrochoid/info.template new file mode 100644 index 00000000..5fb9227e --- /dev/null +++ b/windows/templates/hypotrochoid/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=Hypotrochoid +Name[zh_CN]=内旋轮线 +Icon=hypotrochoid.ico +Description=A simple hypotrochoid drawing app +Description[zh_CN]=内旋轮线绘制程序 +Category=Game +Category[zh_CN]=游戏 + +[Unit0] +CName=main.c +C=hypotrochoid_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lrdrawing -lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/mysql/info.template b/windows/templates/mysql/info.template new file mode 100644 index 00000000..535c213c --- /dev/null +++ b/windows/templates/mysql/info.template @@ -0,0 +1,19 @@ +[Template] +ver=2 +Name=MySQL(MyriaDB) +Icon=mysql.ico +Description=A Sqlite3 API Example +Description[zh_CN]=MySQL数据库示例程序 +Category=Database +Category[zh_CN]=数据库 + +[Unit0] +CName=main.c +C=mysql_c.txt + +[Project] +UnitCount=1 +Type=1 +Compiler= +CppCompiler= +Linker=-lmysqlclient -lws2_32 -ladvapi32 -lkernel32 -lshlwapi -lcrypt32 -lz -lsecur32 diff --git a/windows/templates/mysql/mysql.ico b/windows/templates/mysql/mysql.ico new file mode 100644 index 0000000000000000000000000000000000000000..b78e8166b4ef9c42975933ebddcb02e644ca16a3 GIT binary patch literal 4286 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 +#include +#include + +void finish_with_error(MYSQL *con) +{ + fprintf(stderr, "%s\n", mysql_error(con)); + mysql_close(con); + exit(1); +} + +int main(int argc, char **argv) +{ + MYSQL *con = mysql_init(NULL); + + if (con == NULL) + { + fprintf(stderr, "%s\n", mysql_error(con)); + exit(1); + } + + if (mysql_real_connect(con, "localhost", "root", "", + "testdb", 0, NULL, 0) == NULL) + { + finish_with_error(con); + } + + //Create table + if (mysql_query(con, "DROP TABLE IF EXISTS cars")) { + finish_with_error(con); + } + + if (mysql_query(con, "CREATE TABLE cars(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), price INT)")) { + finish_with_error(con); + } + + // insert datas + if (mysql_query(con, "INSERT INTO cars VALUES(1,'Audi',52642)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(2,'Mercedes',57127)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(3,'Skoda',9000)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(4,'Volvo',29000)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(5,'Bentley',350000)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(6,'Citroen',21000)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(7,'Hummer',41400)")) { + finish_with_error(con); + } + + if (mysql_query(con, "INSERT INTO cars VALUES(8,'Volkswagen',21600)")) { + finish_with_error(con); + } + + //query datas + if (mysql_query(con, "SELECT * FROM cars")) + { + finish_with_error(con); + } + + MYSQL_RES *result = mysql_store_result(con); + + if (result == NULL) + { + finish_with_error(con); + } + + int num_fields = mysql_num_fields(result); + + MYSQL_ROW row; + + while ((row = mysql_fetch_row(result))) + { + for(int i = 0; i < num_fields; i++) + { + printf("%s ", row[i] ? row[i] : "NULL"); + } + + printf("\n"); + } + + mysql_free_result(result); + mysql_close(con); + exit(0); +} \ No newline at end of file diff --git a/windows/templates/raygui/info.template b/windows/templates/raygui/info.template new file mode 100644 index 00000000..86a7cd62 --- /dev/null +++ b/windows/templates/raygui/info.template @@ -0,0 +1,21 @@ +[Template] +ver=2 +Name=raygui +Name[zh_CN]=raygui +Icon=raygui.ico +Description=raygui demo +Description[zh_CN]=Raygui演示 +Category=Multimedia +Category[zh_CN]=多媒体 + +[Unit0] +CName=main.c +C=raygui_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 + diff --git a/windows/templates/raygui/raygui.ico b/windows/templates/raygui/raygui.ico new file mode 100644 index 0000000000000000000000000000000000000000..b866811464af6c9d2ee9de66bc611bd5cc9cf06c GIT binary patch literal 204862 zcmeI$L6RiL4MfqVbO)K1TJpd=hEBzksA$@xAxZRfWv7p`>NPisLIi;L_}t9L$1jin z{`mXl1mB0GN*m?fPP=8mW`z*b$@^`)c+w1WE+mYT~@IFiLt9&<;r|a|o zX>@|sq;8^zJ_vmu5 z+VT49RUR+;H01x{!>9C?1IMx#zeksg)sEL+ukv`&ry>6rA3mkG95|MJd@m=@sr~Mr zJy$#avftga$2#Zl{qCMUS3CZ)-`%svI)D1j|0BRZMfBW{$Fh&_FBRGE?%BQ3es|Bl zUggJ&_HCVmls%Tc_&xfLY9qUc``tbJdX*n9 z;{S2!`-;DmJ(j)rJ^GGnBfE$D-97tyl^-wS|8eR2iocXSmc95r`i^QNyNCPTJ^Ol< zA1~tnaq0VtW7*?KkMGfU&yK?*-0$w$QEG(y-90->jc~uaXGf`X$p0h2GoPRG%W99|@9x=AYJ~gUJv&N`aKF1}N2znj|0BRNpP%x}aiquhm|@S3!z0}9?%7dl zg!|n+J4%gkzq@BgsdLExBfvACpYqFbq{sJ|Vb6}kBi!%q*->hQ``tY|N{w*8yJttK zbIAWAz%!qp^2>3g$M=|F&yK?*-0$w$QEG(y-90->jc~uaXGf`X$o~QG>2R=py3YCH zUU_8qa12}gnQ+Y-NP})IJ{@a;d99U0r2T?uzkAD`Ql!AWcP3sABRWw zO1M`Z**zR%jKh0&96pC{?*AExU*3uU|KDoe9y9Q6T~T7cRv}F#`OL zq1LF70RIb@Vx$-W{>M;jR7imTg-bC~i~#>*s5L4i!2iOf7%4`8|1s1W6%yco;Zlqg zBf$R{YK;mB@V{^=Mv4*Oe+;!og#`FtxD+GB2=G6KTBAY&{4ZRJkzxe+A49ECAp!mu zF2zVO0{oAm)~JvG{|lF5q!)|H7phDMo<*G1M9r z65xN~Qj8QM!2cL(jS30yzi=r=iV@&{47Emu1o&UL6eGn5@IQuHqe24wFI*#Yiy%{Ewm5sE`2v3zuS~7y9Q6T~T7cRv}F#`OLq1LF70RIb@Vx$-W{>M;jR7imTg-bC~ zi~#>*s5L4i!2iOf7%4`8|1s1W6%yco;ZlqgBf$R{YK;mB@V{^=Mv4*Oe+;!og#`Ft zxD+GB2=G6KTBAY&{4ZRJkzxe+A49ECAp!muF2zVO0{oAm)~JvG{|lF5q!)|H7phDMo<*G1M9r65xN~Qj8QM!2cL(jS30yzi=r=iV@&{ z47Emu1o&UL6eGn5@IQuHqe24wFI*#Yiy%{Ewm5sE`2v3zuS~ z7y9Q6T~T7cRv} zF#`OLq1LF70RIb@Vx$-W{>M;jR7imTg-bC~i~#>*s5L4i!2iOf7%4{JZvWLs009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ yfjof^e+VFe00IagfB*srAb literal 0 HcmV?d00001 diff --git a/windows/templates/raygui/raygui_c.txt b/windows/templates/raygui/raygui_c.txt new file mode 100644 index 00000000..5e0a84db --- /dev/null +++ b/windows/templates/raygui/raygui_c.txt @@ -0,0 +1,251 @@ +/******************************************************************************************* +* +* raygui - controls test suite +* +* TEST CONTROLS: +* - GuiDropdownBox() +* - GuiCheckBox() +* - GuiSpinner() +* - GuiValueBox() +* - GuiTextBox() +* - GuiButton() +* - GuiComboBox() +* - GuiListView() +* - GuiToggleGroup() +* - GuiTextBoxMulti() +* - GuiColorPicker() +* - GuiSlider() +* - GuiSliderBar() +* - GuiProgressBar() +* - GuiColorBarAlpha() +* - GuiScrollPanel() +* +* +* DEPENDENCIES: +* raylib 4.0 - Windowing/input management and drawing. +* raygui 3.2 - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2016-2022 Ramon Santamaria (@raysan5) +* +**********************************************************************************************/ + +#include + +#define RAYGUI_IMPLEMENTATION +//#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory +//#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool +#include + +#include // Required for: strcpy() + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //--------------------------------------------------------------------------------------- + const int screenWidth = 690; + const int screenHeight = 560; + + InitWindow(screenWidth, screenHeight, "raygui - controls test suite"); + SetExitKey(0); + + // GUI controls initialization + //---------------------------------------------------------------------------------- + //GuiSetStyle(DEFAULT,TEXT_SIZE,16); + int dropdownBox000Active = 0; + bool dropDown000EditMode = false; + + int dropdownBox001Active = 0; + bool dropDown001EditMode = false; + + int spinner001Value = 0; + bool spinnerEditMode = false; + + int valueBox002Value = 0; + bool valueBoxEditMode = false; + + char textBoxText[64] = "Text box"; + bool textBoxEditMode = false; + + int listViewScrollIndex = 0; + int listViewActive = -1; + + int listViewExScrollIndex = 0; + int listViewExActive = 2; + int listViewExFocus = -1; + const char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" }; + + char multiTextBoxText[256] = "Multi text box"; + bool multiTextBoxEditMode = false; + Color colorPickerValue = RED; + + int sliderValue = 50; + int sliderBarValue = 60; + float progressValue = 0.4f; + + bool forceSquaredChecked = false; + + float alphaValue = 0.5f; + + int comboBoxActive = 1; + + int toggleGroupActive = 0; + + Vector2 viewScroll = { 0, 0 }; + //---------------------------------------------------------------------------------- + + // Custom GUI font loading + //Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0); + //GuiSetFont(font); + + bool exitWindow = false; + bool showMessageBox = false; + + char textInput[256] = { 0 }; + bool showTextInputBox = false; + + char textInputFileName[256] = { 0 }; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!exitWindow) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + exitWindow = WindowShouldClose(); + + if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox; + + if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true; + +// incompatible with raylib 4.0 +// if (IsFileDropped()) +// { +// int dropFileCount = 0; +// char **droppedFiles = LoadDroppedFiles(&dropFileCount); +// +// if ((dropFileCount > 0) && IsFileExtension(droppedFiles[0], ".rgs")) GuiLoadStyle(droppedFiles[0]); +// +// UnloadDroppedFiles(); // Clear internal buffers +// } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + + // raygui: controls drawing + //---------------------------------------------------------------------------------- + if (dropDown000EditMode || dropDown001EditMode) GuiLock(); + else if (!dropDown000EditMode && !dropDown001EditMode) GuiUnlock(); + //GuiDisable(); + + // First GUI column + //GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + forceSquaredChecked = GuiCheckBox((Rectangle){ 25, 108, 15, 15 }, "FORCE CHECK!", forceSquaredChecked); + + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + //GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + if (GuiSpinner((Rectangle){ 25, 135, 125, 30 }, NULL, &spinner001Value, 0, 100, spinnerEditMode)) spinnerEditMode = !spinnerEditMode; + if (GuiValueBox((Rectangle){ 25, 175, 125, 30 }, NULL, &valueBox002Value, 0, 100, valueBoxEditMode)) valueBoxEditMode = !valueBoxEditMode; + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode; + + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + if (GuiButton((Rectangle){ 25, 255, 125, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"))) showTextInputBox = true; + + GuiGroupBox((Rectangle){ 25, 310, 125, 150 }, "STATES"); + //GuiLock(); + GuiSetState(STATE_NORMAL); if (GuiButton((Rectangle){ 30, 320, 115, 30 }, "NORMAL")) { } + GuiSetState(STATE_FOCUSED); if (GuiButton((Rectangle){ 30, 355, 115, 30 }, "FOCUSED")) { } + GuiSetState(STATE_PRESSED); if (GuiButton((Rectangle){ 30, 390, 115, 30 }, "#15#PRESSED")) { } + GuiSetState(STATE_DISABLED); if (GuiButton((Rectangle){ 30, 425, 115, 30 }, "DISABLED")) { } + GuiSetState(STATE_NORMAL); + //GuiUnlock(); + + comboBoxActive = GuiComboBox((Rectangle){ 25, 470, 125, 30 }, "ONE;TWO;THREE;FOUR", comboBoxActive); + + // NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); + if (GuiDropdownBox((Rectangle){ 25, 65, 125, 30 }, "#01#ONE;#02#TWO;#03#THREE;#04#FOUR", &dropdownBox001Active, dropDown001EditMode)) dropDown001EditMode = !dropDown001EditMode; + + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode; + + // Second GUI column + listViewActive = GuiListView((Rectangle){ 165, 25, 140, 140 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, listViewActive); + listViewExActive = GuiListViewEx((Rectangle){ 165, 180, 140, 200 }, listViewExList, 8, &listViewExFocus, &listViewExScrollIndex, listViewExActive); + + toggleGroupActive = GuiToggleGroup((Rectangle){ 165, 400, 140, 25 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", toggleGroupActive); + + // Third GUI column + if (GuiTextBoxMulti((Rectangle){ 320, 25, 225, 140 }, multiTextBoxText, 256, multiTextBoxEditMode)) multiTextBoxEditMode = !multiTextBoxEditMode; + colorPickerValue = GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, NULL, colorPickerValue); + + sliderValue = GuiSlider((Rectangle){ 355, 400, 165, 20 }, "TEST", TextFormat("%2.2f", (float)sliderValue), sliderValue, -50, 100); + sliderBarValue = GuiSliderBar((Rectangle){ 320, 430, 200, 20 }, NULL, TextFormat("%i", (int)sliderBarValue), sliderBarValue, 0, 100); + progressValue = GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, NULL, progressValue, 0, 1); + + // NOTE: View rectangle could be used to perform some scissor test + Rectangle view = GuiScrollPanel((Rectangle){ 560, 25, 100, 160 }, NULL, (Rectangle){ 560, 25, 200, 400 }, &viewScroll); + + GuiPanel((Rectangle){ 560, 25 + 180, 100, 160 }, "Panel Info"); + + GuiGrid((Rectangle) { 560, 25 + 180 + 180, 100, 120 }, NULL, 20, 2); + + GuiStatusBar((Rectangle){ 0, (float)GetScreenHeight() - 20, (float)GetScreenWidth(), 20 }, "This is a status bar"); + + alphaValue = GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, NULL, alphaValue); + + if (showMessageBox) + { + DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f)); + int result = GuiMessageBox((Rectangle){ (float)GetScreenWidth()/2 - 125, (float)GetScreenHeight()/2 - 50, 250, 100 }, GuiIconText(ICON_EXIT, "Close Window"), "Do you really want to exit?", "Yes;No"); + + if ((result == 0) || (result == 2)) showMessageBox = false; + else if (result == 1) exitWindow = true; + } + + if (showTextInputBox) + { + DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f)); + int result = GuiTextInputBox((Rectangle){ (float)GetScreenWidth()/2 - 120, (float)GetScreenHeight()/2 - 60, 240, 140 }, "Save", GuiIconText(ICON_FILE_SAVE, "Save file as..."), "Ok;Cancel", textInput, 255, NULL); + + if (result == 1) + { + // TODO: Validate textInput value and save + + strcpy(textInputFileName, textInput); + } + + if ((result == 0) || (result == 1) || (result == 2)) + { + showTextInputBox = false; + strcpy(textInput, "\0"); + } + } + //---------------------------------------------------------------------------------- + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/windows/templates/raylib-3d/info.template b/windows/templates/raylib-3d/info.template new file mode 100644 index 00000000..745ffcda --- /dev/null +++ b/windows/templates/raylib-3d/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=raylib 3D +Name[zh_CN]=raylib 3D +Icon=raylib.ico +Description=A simple 3D program using raylib ( https://raylib.com ) +Description[zh_CN]=简单的raylib 3D程序 ( https://raylib.com ) +Category=3D +Category[zh_CN]=3D + +[Unit0] +CName=main.c +C=raylib_3d_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/raylib-3d/raylib.ico b/windows/templates/raylib-3d/raylib.ico new file mode 100644 index 0000000000000000000000000000000000000000..14db8eab11496bd774d5efb1e8d8b7f6e6e82b45 GIT binary patch literal 24702 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 + +#include + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - waving cubes"); + + // Initialize the camera + Camera3D camera = { 0 }; + camera.position = (Vector3){ 30.0f, 20.0f, 30.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 70.0f; + camera.projection = CAMERA_PERSPECTIVE; + + // Specify the amount of blocks in each direction + const int numBlocks = 15; + + SetTargetFPS(60); + SetTraceLogLevel(LOG_WARNING); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + double time = GetTime(); + + // Calculate time scale for cube position and size + float scale = (2.0f + (float)sin(time))*0.7f; + + // Move camera around the scene + double cameraTime = time*0.3; + camera.position.x = (float)cos(cameraTime)*40.0f; + camera.position.z = (float)sin(cameraTime)*40.0f; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawGrid(10, 5.0f); + + for (int x = 0; x < numBlocks; x++) + { + for (int y = 0; y < numBlocks; y++) + { + for (int z = 0; z < numBlocks; z++) + { + // Scale of the blocks depends on x/y/z positions + float blockScale = (x + y + z)/30.0f; + + // Scatter makes the waving effect by adding blockScale over time + float scatter = sinf(blockScale*20.0f + (float)(time*4.0f)); + + // Calculate the cube position + Vector3 cubePos = { + (float)(x - numBlocks/2)*(scale*3.0f) + scatter, + (float)(y - numBlocks/2)*(scale*2.0f) + scatter, + (float)(z - numBlocks/2)*(scale*3.0f) + scatter + }; + + // Pick a color with a hue depending on cube position for the rainbow color effect + Color cubeColor = ColorFromHSV((float)(((x + y + z)*18)%360), 0.75f, 0.9f); + + // Calculate cube size + float cubeSize = (2.4f - scale)*blockScale; + + // And finally, draw the cube! + DrawCube(cubePos, cubeSize, cubeSize, cubeSize, cubeColor); + } + } + } + + EndMode3D(); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/windows/templates/raylib-arkanoid/info.template b/windows/templates/raylib-arkanoid/info.template new file mode 100644 index 00000000..79c94263 --- /dev/null +++ b/windows/templates/raylib-arkanoid/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=arkanoid +Name[zh_CN]=打砖块 +Icon=raylib_arkanoid.ico +Description=arkanoid game using raylib ( https://raylib.com ) +Description[zh_CN]=经典的打砖块游戏(基于raylib) ( https://raylib.com ) +Category=Game +Category[zh_CN]=游戏 + +[Unit0] +CName=main.c +C=raylib_arkanoid_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/raylib-arkanoid/raylib_arkanoid.ico b/windows/templates/raylib-arkanoid/raylib_arkanoid.ico new file mode 100644 index 0000000000000000000000000000000000000000..be05b231dab1f3114b6fe3270149cc8bdc0b203b GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/windows/templates/raylib-arkanoid/raylib_arkanoid.png b/windows/templates/raylib-arkanoid/raylib_arkanoid.png new file mode 100644 index 0000000000000000000000000000000000000000..99718cdc7c97229bc14834340aa30f6fc939e0b6 GIT binary patch literal 11716 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 literal 0 HcmV?d00001 diff --git a/windows/templates/raylib-arkanoid/raylib_arkanoid_c.txt b/windows/templates/raylib-arkanoid/raylib_arkanoid_c.txt new file mode 100644 index 00000000..ae906423 --- /dev/null +++ b/windows/templates/raylib-arkanoid/raylib_arkanoid_c.txt @@ -0,0 +1,324 @@ +/******************************************************************************************* +* +* raylib - classic game: arkanoid +* +* Sample game developed by Marc Palau and Ramon Santamaria +* +* This game has been created using raylib v1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +* Icon from https://www.flaticon.com/free-icon/arkanoid_2927802 +********************************************************************************************/ + +#include + +#include +#include +#include +#include + +#if defined(PLATFORM_WEB) +#include +#endif + +//---------------------------------------------------------------------------------- +// Some Defines +//---------------------------------------------------------------------------------- +#define PLAYER_MAX_LIFE 5 +#define LINES_OF_BRICKS 5 +#define BRICKS_PER_LINE 20 + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +typedef enum GameScreen { LOGO, TITLE, GAMEPLAY, ENDING } GameScreen; + +typedef struct Player { + Vector2 position; + Vector2 size; + int life; +} Player; + +typedef struct Ball { + Vector2 position; + Vector2 speed; + int radius; + bool active; +} Ball; + +typedef struct Brick { + Vector2 position; + bool active; +} Brick; + +//------------------------------------------------------------------------------------ +// Global Variables Declaration +//------------------------------------------------------------------------------------ +static const int screenWidth = 800; +static const int screenHeight = 450; + +static bool gameOver = false; +static bool pause = false; + +static Player player = { 0 }; +static Ball ball = { 0 }; +static Brick brick[LINES_OF_BRICKS][BRICKS_PER_LINE] = { 0 }; +static Vector2 brickSize = { 0 }; + +//------------------------------------------------------------------------------------ +// Module Functions Declaration (local) +//------------------------------------------------------------------------------------ +static void InitGame(void); // Initialize game +static void UpdateGame(void); // Update game (one frame) +static void DrawGame(void); // Draw game (one frame) +static void UnloadGame(void); // Unload game +static void UpdateDrawFrame(void); // Update and Draw (one frame) + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "classic game: arkanoid"); + + InitGame(); + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 60, 1); +#else + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update and Draw + //---------------------------------------------------------------------------------- + UpdateDrawFrame(); + //---------------------------------------------------------------------------------- + } +#endif + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadGame(); // Unload loaded data (textures, sounds, models...) + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//------------------------------------------------------------------------------------ +// Module Functions Definitions (local) +//------------------------------------------------------------------------------------ + +// Initialize game variables +void InitGame(void) +{ + brickSize = (Vector2){ GetScreenWidth()/BRICKS_PER_LINE, 40 }; + + // Initialize player + player.position = (Vector2){ screenWidth/2, screenHeight*7/8 }; + player.size = (Vector2){ screenWidth/10, 20 }; + player.life = PLAYER_MAX_LIFE; + + // Initialize ball + ball.position = (Vector2){ screenWidth/2, screenHeight*7/8 - 30 }; + ball.speed = (Vector2){ 0, 0 }; + ball.radius = 7; + ball.active = false; + + // Initialize bricks + int initialDownPosition = 50; + + for (int i = 0; i < LINES_OF_BRICKS; i++) + { + for (int j = 0; j < BRICKS_PER_LINE; j++) + { + brick[i][j].position = (Vector2){ j*brickSize.x + brickSize.x/2, i*brickSize.y + initialDownPosition }; + brick[i][j].active = true; + } + } +} + +// Update game (one frame) +void UpdateGame(void) +{ + if (!gameOver) + { + if (IsKeyPressed('P')) pause = !pause; + + if (!pause) + { + // Player movement logic + if (IsKeyDown(KEY_LEFT)) player.position.x -= 5; + if ((player.position.x - player.size.x/2) <= 0) player.position.x = player.size.x/2; + if (IsKeyDown(KEY_RIGHT)) player.position.x += 5; + if ((player.position.x + player.size.x/2) >= screenWidth) player.position.x = screenWidth - player.size.x/2; + + // Ball launching logic + if (!ball.active) + { + if (IsKeyPressed(KEY_SPACE)) + { + ball.active = true; + ball.speed = (Vector2){ 0, -5 }; + } + } + + // Ball movement logic + if (ball.active) + { + ball.position.x += ball.speed.x; + ball.position.y += ball.speed.y; + } + else + { + ball.position = (Vector2){ player.position.x, screenHeight*7/8 - 30 }; + } + + // Collision logic: ball vs walls + if (((ball.position.x + ball.radius) >= screenWidth) || ((ball.position.x - ball.radius) <= 0)) ball.speed.x *= -1; + if ((ball.position.y - ball.radius) <= 0) ball.speed.y *= -1; + if ((ball.position.y + ball.radius) >= screenHeight) + { + ball.speed = (Vector2){ 0, 0 }; + ball.active = false; + + player.life--; + } + + // Collision logic: ball vs player + if (CheckCollisionCircleRec(ball.position, ball.radius, + (Rectangle){ player.position.x - player.size.x/2, player.position.y - player.size.y/2, player.size.x, player.size.y})) + { + if (ball.speed.y > 0) + { + ball.speed.y *= -1; + ball.speed.x = (ball.position.x - player.position.x)/(player.size.x/2)*5; + } + } + + // Collision logic: ball vs bricks + for (int i = 0; i < LINES_OF_BRICKS; i++) + { + for (int j = 0; j < BRICKS_PER_LINE; j++) + { + if (brick[i][j].active) + { + // Hit below + if (((ball.position.y - ball.radius) <= (brick[i][j].position.y + brickSize.y/2)) && + ((ball.position.y - ball.radius) > (brick[i][j].position.y + brickSize.y/2 + ball.speed.y)) && + ((fabs(ball.position.x - brick[i][j].position.x)) < (brickSize.x/2 + ball.radius*2/3)) && (ball.speed.y < 0)) + { + brick[i][j].active = false; + ball.speed.y *= -1; + } + // Hit above + else if (((ball.position.y + ball.radius) >= (brick[i][j].position.y - brickSize.y/2)) && + ((ball.position.y + ball.radius) < (brick[i][j].position.y - brickSize.y/2 + ball.speed.y)) && + ((fabs(ball.position.x - brick[i][j].position.x)) < (brickSize.x/2 + ball.radius*2/3)) && (ball.speed.y > 0)) + { + brick[i][j].active = false; + ball.speed.y *= -1; + } + // Hit left + else if (((ball.position.x + ball.radius) >= (brick[i][j].position.x - brickSize.x/2)) && + ((ball.position.x + ball.radius) < (brick[i][j].position.x - brickSize.x/2 + ball.speed.x)) && + ((fabs(ball.position.y - brick[i][j].position.y)) < (brickSize.y/2 + ball.radius*2/3)) && (ball.speed.x > 0)) + { + brick[i][j].active = false; + ball.speed.x *= -1; + } + // Hit right + else if (((ball.position.x - ball.radius) <= (brick[i][j].position.x + brickSize.x/2)) && + ((ball.position.x - ball.radius) > (brick[i][j].position.x + brickSize.x/2 + ball.speed.x)) && + ((fabs(ball.position.y - brick[i][j].position.y)) < (brickSize.y/2 + ball.radius*2/3)) && (ball.speed.x < 0)) + { + brick[i][j].active = false; + ball.speed.x *= -1; + } + } + } + } + + // Game over logic + if (player.life <= 0) gameOver = true; + else + { + gameOver = true; + + for (int i = 0; i < LINES_OF_BRICKS; i++) + { + for (int j = 0; j < BRICKS_PER_LINE; j++) + { + if (brick[i][j].active) gameOver = false; + } + } + } + } + } + else + { + if (IsKeyPressed(KEY_ENTER)) + { + InitGame(); + gameOver = false; + } + } +} + +// Draw game (one frame) +void DrawGame(void) +{ + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (!gameOver) + { + // Draw player bar + DrawRectangle(player.position.x - player.size.x/2, player.position.y - player.size.y/2, player.size.x, player.size.y, BLACK); + + // Draw player lives + for (int i = 0; i < player.life; i++) DrawRectangle(20 + 40*i, screenHeight - 30, 35, 10, LIGHTGRAY); + + // Draw ball + DrawCircleV(ball.position, ball.radius, MAROON); + + // Draw bricks + for (int i = 0; i < LINES_OF_BRICKS; i++) + { + for (int j = 0; j < BRICKS_PER_LINE; j++) + { + if (brick[i][j].active) + { + if ((i + j) % 2 == 0) DrawRectangle(brick[i][j].position.x - brickSize.x/2, brick[i][j].position.y - brickSize.y/2, brickSize.x, brickSize.y, GRAY); + else DrawRectangle(brick[i][j].position.x - brickSize.x/2, brick[i][j].position.y - brickSize.y/2, brickSize.x, brickSize.y, DARKGRAY); + } + } + } + + if (pause) DrawText("GAME PAUSED", screenWidth/2 - MeasureText("GAME PAUSED", 40)/2, screenHeight/2 - 40, 40, GRAY); + } + else DrawText("PRESS [ENTER] TO PLAY AGAIN", GetScreenWidth()/2 - MeasureText("PRESS [ENTER] TO PLAY AGAIN", 20)/2, GetScreenHeight()/2 - 50, 20, GRAY); + + EndDrawing(); +} + +// Unload game variables +void UnloadGame(void) +{ + // TODO: Unload all dynamic loaded data (textures, sounds, models...) +} + +// Update and Draw (one frame) +void UpdateDrawFrame(void) +{ + UpdateGame(); + DrawGame(); +} \ No newline at end of file diff --git a/windows/templates/raylib-shader/info.template b/windows/templates/raylib-shader/info.template new file mode 100644 index 00000000..3d0dfad9 --- /dev/null +++ b/windows/templates/raylib-shader/info.template @@ -0,0 +1,28 @@ +[Template] +ver=2 +Name=raylib 3D Shader +Name[zh_CN]=raylib 3D 着色器 +Icon=raylib.ico +Description=A 3D Shader program using raylib ( https://raylib.com ) +Description[zh_CN]=带着色器的raylib 3D程序 ( https://raylib.com ) +Category=3D +Category[zh_CN]=3D + +[Unit0] +CPPName=main.c +C=raylib_3d_shader_c.txt + +[Unit1] +Source=raylib_base.vs +Target=vertices_shader.vs + +[Unit2] +Source=raylib_base.fs +Target=fragment_shader.fs + +[Project] +UnitCount=3 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/raylib-shader/raylib.ico b/windows/templates/raylib-shader/raylib.ico new file mode 100644 index 0000000000000000000000000000000000000000..14db8eab11496bd774d5efb1e8d8b7f6e6e82b45 GIT binary patch literal 24702 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 +#include + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) + InitWindow(screenWidth, screenHeight, "raylib shader"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 2.0f, 4.0f, 6.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.5f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera mode type + + // Load plane model from a generated mesh + Model model = LoadModelFromMesh(GenMeshCube(10.0f, 10.0f, 3.3)); + + Shader shader = LoadShader("vertices_shader.vs","fragment_shader.fs"); + + // Assign out lighting shader to model + model.materials[0].shader = shader; + + SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + SetTraceLogLevel(LOG_WARNING); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update camera + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawModel(model, Vector3Zero(), 1.0f, WHITE); + + DrawGrid(10, 1.0f); + + EndMode3D(); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + UnloadModel(model); // Unload the model + UnloadShader(shader); // Unload shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/windows/templates/raylib-shader/raylib_base.fs b/windows/templates/raylib-shader/raylib_base.fs new file mode 100644 index 00000000..6b500622 --- /dev/null +++ b/windows/templates/raylib-shader/raylib_base.fs @@ -0,0 +1,25 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord); + + // NOTE: Implement here your fragment shader code + + finalColor = texelColor*colDiffuse; +} + diff --git a/windows/templates/raylib-shader/raylib_base.vs b/windows/templates/raylib-shader/raylib_base.vs new file mode 100644 index 00000000..8cc2abb2 --- /dev/null +++ b/windows/templates/raylib-shader/raylib_base.vs @@ -0,0 +1,26 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +in vec2 vertexTexCoord; +in vec3 vertexNormal; +in vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; + +// Output vertex attributes (to fragment shader) +out vec2 fragTexCoord; +out vec4 fragColor; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} \ No newline at end of file diff --git a/windows/templates/raylib-snake/info.template b/windows/templates/raylib-snake/info.template new file mode 100644 index 00000000..ccc5af02 --- /dev/null +++ b/windows/templates/raylib-snake/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=snake +Name[zh_CN]=吞食蛇 +Icon=raylib-snake.ico +Description=snake game using raylib ( https://raylib.com ) +Description[zh_CN]=经典的吞食蛇游戏(基于raylib) ( https://raylib.com ) +Category=Game +Category[zh_CN]=游戏 + +[Unit0] +CName=main.c +C=raylib_snake_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/raylib-snake/raylib-snake.ico b/windows/templates/raylib-snake/raylib-snake.ico new file mode 100644 index 0000000000000000000000000000000000000000..9e8ce4af533f8f63d084d4cdf39aa6b2c8e21c3c GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/windows/templates/raylib-snake/raylib_snake_c.txt b/windows/templates/raylib-snake/raylib_snake_c.txt new file mode 100644 index 00000000..62eace4d --- /dev/null +++ b/windows/templates/raylib-snake/raylib_snake_c.txt @@ -0,0 +1,286 @@ +/******************************************************************************************* +* +* raylib - classic game: snake +* +* Sample game developed by Ian Eito, Albert Martos and Ramon Santamaria +* +* This game has been created using raylib v1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Some Defines +//---------------------------------------------------------------------------------- +#define SNAKE_LENGTH 256 +#define SQUARE_SIZE 31 + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +typedef struct Snake { + Vector2 position; + Vector2 size; + Vector2 speed; + Color color; +} Snake; + +typedef struct Food { + Vector2 position; + Vector2 size; + bool active; + Color color; +} Food; + +//------------------------------------------------------------------------------------ +// Global Variables Declaration +//------------------------------------------------------------------------------------ +static const int screenWidth = 800; +static const int screenHeight = 450; + +static int framesCounter = 0; +static bool gameOver = false; +static bool pause = false; + +static Food fruit = { 0 }; +static Snake snake[SNAKE_LENGTH] = { 0 }; +static Vector2 snakePosition[SNAKE_LENGTH] = { 0 }; +static bool allowMove = false; +static Vector2 offset = { 0 }; +static int counterTail = 0; + +//------------------------------------------------------------------------------------ +// Module Functions Declaration (local) +//------------------------------------------------------------------------------------ +static void InitGame(void); // Initialize game +static void UpdateGame(void); // Update game (one frame) +static void DrawGame(void); // Draw game (one frame) +static void UnloadGame(void); // Unload game +static void UpdateDrawFrame(void); // Update and Draw (one frame) + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "classic game: snake"); + + InitGame(); + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 60, 1); +#else + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update and Draw + //---------------------------------------------------------------------------------- + UpdateDrawFrame(); + //---------------------------------------------------------------------------------- + } +#endif + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadGame(); // Unload loaded data (textures, sounds, models...) + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//------------------------------------------------------------------------------------ +// Module Functions Definitions (local) +//------------------------------------------------------------------------------------ + +// Initialize game variables +void InitGame(void) +{ + framesCounter = 0; + gameOver = false; + pause = false; + + counterTail = 1; + allowMove = false; + + offset.x = screenWidth%SQUARE_SIZE; + offset.y = screenHeight%SQUARE_SIZE; + + for (int i = 0; i < SNAKE_LENGTH; i++) + { + snake[i].position = (Vector2){ offset.x/2, offset.y/2 }; + snake[i].size = (Vector2){ SQUARE_SIZE, SQUARE_SIZE }; + snake[i].speed = (Vector2){ SQUARE_SIZE, 0 }; + + if (i == 0) snake[i].color = DARKBLUE; + else snake[i].color = BLUE; + } + + for (int i = 0; i < SNAKE_LENGTH; i++) + { + snakePosition[i] = (Vector2){ 0.0f, 0.0f }; + } + + fruit.size = (Vector2){ SQUARE_SIZE, SQUARE_SIZE }; + fruit.color = SKYBLUE; + fruit.active = false; +} + +// Update game (one frame) +void UpdateGame(void) +{ + if (!gameOver) + { + if (IsKeyPressed('P')) pause = !pause; + + if (!pause) + { + // Player control + if (IsKeyPressed(KEY_RIGHT) && (snake[0].speed.x == 0) && allowMove) + { + snake[0].speed = (Vector2){ SQUARE_SIZE, 0 }; + allowMove = false; + } + if (IsKeyPressed(KEY_LEFT) && (snake[0].speed.x == 0) && allowMove) + { + snake[0].speed = (Vector2){ -SQUARE_SIZE, 0 }; + allowMove = false; + } + if (IsKeyPressed(KEY_UP) && (snake[0].speed.y == 0) && allowMove) + { + snake[0].speed = (Vector2){ 0, -SQUARE_SIZE }; + allowMove = false; + } + if (IsKeyPressed(KEY_DOWN) && (snake[0].speed.y == 0) && allowMove) + { + snake[0].speed = (Vector2){ 0, SQUARE_SIZE }; + allowMove = false; + } + + // Snake movement + for (int i = 0; i < counterTail; i++) snakePosition[i] = snake[i].position; + + if ((framesCounter%5) == 0) + { + for (int i = 0; i < counterTail; i++) + { + if (i == 0) + { + snake[0].position.x += snake[0].speed.x; + snake[0].position.y += snake[0].speed.y; + allowMove = true; + } + else snake[i].position = snakePosition[i-1]; + } + } + + // Wall behaviour + if (((snake[0].position.x) > (screenWidth - offset.x)) || + ((snake[0].position.y) > (screenHeight - offset.y)) || + (snake[0].position.x < 0) || (snake[0].position.y < 0)) + { + gameOver = true; + } + + // Collision with yourself + for (int i = 1; i < counterTail; i++) + { + if ((snake[0].position.x == snake[i].position.x) && (snake[0].position.y == snake[i].position.y)) gameOver = true; + } + + // Fruit position calculation + if (!fruit.active) + { + fruit.active = true; + fruit.position = (Vector2){ GetRandomValue(0, (screenWidth/SQUARE_SIZE) - 1)*SQUARE_SIZE + offset.x/2, GetRandomValue(0, (screenHeight/SQUARE_SIZE) - 1)*SQUARE_SIZE + offset.y/2 }; + + for (int i = 0; i < counterTail; i++) + { + while ((fruit.position.x == snake[i].position.x) && (fruit.position.y == snake[i].position.y)) + { + fruit.position = (Vector2){ GetRandomValue(0, (screenWidth/SQUARE_SIZE) - 1)*SQUARE_SIZE + offset.x/2, GetRandomValue(0, (screenHeight/SQUARE_SIZE) - 1)*SQUARE_SIZE + offset.y/2 }; + i = 0; + } + } + } + + // Collision + if ((snake[0].position.x < (fruit.position.x + fruit.size.x) && (snake[0].position.x + snake[0].size.x) > fruit.position.x) && + (snake[0].position.y < (fruit.position.y + fruit.size.y) && (snake[0].position.y + snake[0].size.y) > fruit.position.y)) + { + snake[counterTail].position = snakePosition[counterTail - 1]; + counterTail += 1; + fruit.active = false; + } + + framesCounter++; + } + } + else + { + if (IsKeyPressed(KEY_ENTER)) + { + InitGame(); + gameOver = false; + } + } +} + +// Draw game (one frame) +void DrawGame(void) +{ + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (!gameOver) + { + // Draw grid lines + for (int i = 0; i < screenWidth/SQUARE_SIZE + 1; i++) + { + DrawLineV((Vector2){SQUARE_SIZE*i + offset.x/2, offset.y/2}, (Vector2){SQUARE_SIZE*i + offset.x/2, screenHeight - offset.y/2}, LIGHTGRAY); + } + + for (int i = 0; i < screenHeight/SQUARE_SIZE + 1; i++) + { + DrawLineV((Vector2){offset.x/2, SQUARE_SIZE*i + offset.y/2}, (Vector2){screenWidth - offset.x/2, SQUARE_SIZE*i + offset.y/2}, LIGHTGRAY); + } + + // Draw snake + for (int i = 0; i < counterTail; i++) DrawRectangleV(snake[i].position, snake[i].size, snake[i].color); + + // Draw fruit to pick + DrawRectangleV(fruit.position, fruit.size, fruit.color); + + if (pause) DrawText("GAME PAUSED", screenWidth/2 - MeasureText("GAME PAUSED", 40)/2, screenHeight/2 - 40, 40, GRAY); + } + else DrawText("PRESS [ENTER] TO PLAY AGAIN", GetScreenWidth()/2 - MeasureText("PRESS [ENTER] TO PLAY AGAIN", 20)/2, GetScreenHeight()/2 - 50, 20, GRAY); + + EndDrawing(); +} + +// Unload game variables +void UnloadGame(void) +{ + // TODO: Unload all dynamic loaded data (textures, sounds, models...) +} + +// Update and Draw (one frame) +void UpdateDrawFrame(void) +{ + UpdateGame(); + DrawGame(); +} \ No newline at end of file diff --git a/windows/templates/raylib-tetris/info.template b/windows/templates/raylib-tetris/info.template new file mode 100644 index 00000000..6b2253e8 --- /dev/null +++ b/windows/templates/raylib-tetris/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=Tetris +Name[zh_CN]=俄罗斯方块 +Icon=raylib-tetris.ico +Description=Tetris game using raylib ( https://raylib.com ) +Description[zh_CN]=经典的俄罗斯方块游戏(基于raylib) ( https://raylib.com ) +Category=Game +Category[zh_CN]=游戏 + +[Unit0] +CName=main.c +C=raylib_tetris_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/raylib-tetris/raylib-tetris.ico b/windows/templates/raylib-tetris/raylib-tetris.ico new file mode 100644 index 0000000000000000000000000000000000000000..f026b7506408642e8baf0c6fe93d54b7571aa195 GIT binary patch literal 67646 zcmeI5&yQ3^5Xav_Hmt{KX~&yg>qz3~IuW3m1QcUHJpJ zd0G#8)+50SG7%GvC+?c)T|F3MP=nG|%}&2JRsF^tqSgJ_{x<3Dt)7{#?)ucX-kS*n zMKMBumX-?oxxLsqHd0I$MX{4QP4Q%Ro_{Uqv6?nbb6-%uL*1cg5d&t;%$fa7FwcT{ zowlL-ylWn6e%}1+Y69jm&x!Wecb#>wyXUa>$?GqCa3jd?$M?3(&+E^|zVz9bPrvVO zz5S_q*M0}tey^5eoo`Ejer@ny{a)9{%5nt%iUah&5(~?G^J_!@Ro>NUkmr1?EXO+E zmj3+O;1B*f_i+CwbHZ!Ia?}iB)g9%L!GGho|4W;sIt zl65K$sr-UJ`0Lz5{g*jmS%3Z7ngQGXG0PG9m#kB9NaYv&!C&Vd>c7kh%lhlr)(qJ8 zk6Dh;zhs??Ln^=E5B@s$Q2%94Sk_;^wr0S#f6Q`({w3>F98&oOfAH72hx#vb!m|GQ zwKW5_{bQCR^e`VKfo!lP9xAxn!X~?Rz=(K_XvybupYxcpu zwEx84|I7+L9Txm${)0dCpHmJ%|Ioj<2IKmlll*c0C))k_pA~#MEb2e__ve52JsIBr zWm5*Af9N0juW}$8;r9*-{a5T+2e~!y2Y=N6DhHr{eEyqL4xs*5+Q;>uVu8Re*%t@Qi#a%e%?on2L8>>_Za+lk&`Cr4|}P2#Nf|9t|A8pYv9=}mz;GU z5PxP9qm7c2Gt@6pUyR&;Ab&#hiSPf!UU+YBJ^#0P*D>hXG_3j7p%aRjC;tAo*bDCs z{7rKZ{HeZZ4fJf&z&B)Z@CSd9|ET}v^{^olHQfgE5B)>`>K>RB$1%yFLI2P{^bh@) zIe_~=-2cV+_b2G$TISrp{f^InOm9PQ{m1oR=n(b4tV^cCYslizKlBg%*WZgYM53nK zfc~L>=pXtoa{%{$xc|fZ|85SLUU(a_IIjP={+G3%aB_?-=-OHY-cLKH>#-0@CU|aK_ojfO=GpxVJ&+CxCSZ$dcH6T z_x~8MU6{M(M%RsZ&oa7x+%3#~7Ch(FzVF>5Do=*-8TmOe`ERAOeHZzBb@}!y?cvqB zeH`2Mx%2(C`ET4ChyDz>dYzv=@UuI<`%A~8pVQ;HgTK2I&wN#`$!o9X*Zcp!$LFT6 z)cKCdpN?Me_s+Wn0DshfkpmWb*K0!mspKB` z73`UdW@TZ6f50Kt1o)%=iyW}fyIvFePbK%juVBwyG%E`m`~wcDCcq!{U*v#=-u0T$ ze=4~Leg*qFE*Z>qf~e#(0seW{|2rAzd$k>;tAN)Gs==Iv>LzX`1ac;1C k0o&FMN4$8j+r_^4v)%gdHZvdLwYbrG-L_)EUMunV2VD1tj{pDw literal 0 HcmV?d00001 diff --git a/windows/templates/raylib-tetris/raylib_tetris_c.txt b/windows/templates/raylib-tetris/raylib_tetris_c.txt new file mode 100644 index 00000000..08f37557 --- /dev/null +++ b/windows/templates/raylib-tetris/raylib_tetris_c.txt @@ -0,0 +1,791 @@ +/******************************************************************************************* +* +* raylib - classic game: tetris +* +* Sample game developed by Marc Palau and Ramon Santamaria +* +* This game has been created using raylib v1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include +#include +#include +#include + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Some Defines +//---------------------------------------------------------------------------------- +#define SQUARE_SIZE 20 + +#define GRID_HORIZONTAL_SIZE 12 +#define GRID_VERTICAL_SIZE 20 + +#define LATERAL_SPEED 10 +#define TURNING_SPEED 12 +#define FAST_FALL_AWAIT_COUNTER 30 + +#define FADING_TIME 33 + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +typedef enum GridSquare { EMPTY, MOVING, FULL, BLOCK, FADING } GridSquare; + +//------------------------------------------------------------------------------------ +// Global Variables Declaration +//------------------------------------------------------------------------------------ +static const int screenWidth = 800; +static const int screenHeight = 450; + +static bool gameOver = false; +static bool pause = false; + +// Matrices +static GridSquare grid [GRID_HORIZONTAL_SIZE][GRID_VERTICAL_SIZE]; +static GridSquare piece [4][4]; +static GridSquare incomingPiece [4][4]; + +// Theese variables keep track of the active piece position +static int piecePositionX = 0; +static int piecePositionY = 0; + +// Game parameters +static Color fadingColor; +//static int fallingSpeed; // In frames + +static bool beginPlay = true; // This var is only true at the begining of the game, used for the first matrix creations +static bool pieceActive = false; +static bool detection = false; +static bool lineToDelete = false; + +// Statistics +static int level = 1; +static int lines = 0; + +// Counters +static int gravityMovementCounter = 0; +static int lateralMovementCounter = 0; +static int turnMovementCounter = 0; +static int fastFallMovementCounter = 0; + +static int fadeLineCounter = 0; + +// Based on level +static int gravitySpeed = 30; + +//------------------------------------------------------------------------------------ +// Module Functions Declaration (local) +//------------------------------------------------------------------------------------ +static void InitGame(void); // Initialize game +static void UpdateGame(void); // Update game (one frame) +static void DrawGame(void); // Draw game (one frame) +static void UnloadGame(void); // Unload game +static void UpdateDrawFrame(void); // Update and Draw (one frame) + +// Additional module functions +static bool Createpiece(); +static void GetRandompiece(); +static void ResolveFallingMovement(bool *detection, bool *pieceActive); +static bool ResolveLateralMovement(); +static bool ResolveTurnMovement(); +static void CheckDetection(bool *detection); +static void CheckCompletion(bool *lineToDelete); +static void DeleteCompleteLines(); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "classic game: tetris"); + + InitGame(); + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 60, 1); +#else + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update and Draw + //---------------------------------------------------------------------------------- + UpdateDrawFrame(); + //---------------------------------------------------------------------------------- + } +#endif + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadGame(); // Unload loaded data (textures, sounds, models...) + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//-------------------------------------------------------------------------------------- +// Game Module Functions Definition +//-------------------------------------------------------------------------------------- + +// Initialize game variables +void InitGame(void) +{ + // Initialize game statistics + level = 1; + lines = 0; + + fadingColor = GRAY; + + piecePositionX = 0; + piecePositionY = 0; + + pause = false; + + beginPlay = true; + pieceActive = false; + detection = false; + lineToDelete = false; + + // Counters + gravityMovementCounter = 0; + lateralMovementCounter = 0; + turnMovementCounter = 0; + fastFallMovementCounter = 0; + + fadeLineCounter = 0; + gravitySpeed = 30; + + // Initialize grid matrices + for (int i = 0; i < GRID_HORIZONTAL_SIZE; i++) + { + for (int j = 0; j < GRID_VERTICAL_SIZE; j++) + { + if ((j == GRID_VERTICAL_SIZE - 1) || (i == 0) || (i == GRID_HORIZONTAL_SIZE - 1)) grid[i][j] = BLOCK; + else grid[i][j] = EMPTY; + } + } + + // Initialize incoming piece matrices + for (int i = 0; i < 4; i++) + { + for (int j = 0; j< 4; j++) + { + incomingPiece[i][j] = EMPTY; + } + } +} + +// Update game (one frame) +void UpdateGame(void) +{ + if (!gameOver) + { + if (IsKeyPressed('P')) pause = !pause; + + if (!pause) + { + if (!lineToDelete) + { + if (!pieceActive) + { + // Get another piece + pieceActive = Createpiece(); + + // We leave a little time before starting the fast falling down + fastFallMovementCounter = 0; + } + else // Piece falling + { + // Counters update + fastFallMovementCounter++; + gravityMovementCounter++; + lateralMovementCounter++; + turnMovementCounter++; + + // We make sure to move if we've pressed the key this frame + if (IsKeyPressed(KEY_LEFT) || IsKeyPressed(KEY_RIGHT)) lateralMovementCounter = LATERAL_SPEED; + if (IsKeyPressed(KEY_UP)) turnMovementCounter = TURNING_SPEED; + + // Fall down + if (IsKeyDown(KEY_DOWN) && (fastFallMovementCounter >= FAST_FALL_AWAIT_COUNTER)) + { + // We make sure the piece is going to fall this frame + gravityMovementCounter += gravitySpeed; + } + + if (gravityMovementCounter >= gravitySpeed) + { + // Basic falling movement + CheckDetection(&detection); + + // Check if the piece has collided with another piece or with the boundings + ResolveFallingMovement(&detection, &pieceActive); + + // Check if we fullfilled a line and if so, erase the line and pull down the the lines above + CheckCompletion(&lineToDelete); + + gravityMovementCounter = 0; + } + + // Move laterally at player's will + if (lateralMovementCounter >= LATERAL_SPEED) + { + // Update the lateral movement and if success, reset the lateral counter + if (!ResolveLateralMovement()) lateralMovementCounter = 0; + } + + // Turn the piece at player's will + if (turnMovementCounter >= TURNING_SPEED) + { + // Update the turning movement and reset the turning counter + if (ResolveTurnMovement()) turnMovementCounter = 0; + } + } + + // Game over logic + for (int j = 0; j < 2; j++) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if (grid[i][j] == FULL) + { + gameOver = true; + } + } + } + } + else + { + // Animation when deleting lines + fadeLineCounter++; + + if (fadeLineCounter%8 < 4) fadingColor = MAROON; + else fadingColor = GRAY; + + if (fadeLineCounter >= FADING_TIME) + { + DeleteCompleteLines(); + fadeLineCounter = 0; + lineToDelete = false; + + lines++; + } + } + } + } + else + { + if (IsKeyPressed(KEY_ENTER)) + { + InitGame(); + gameOver = false; + } + } +} + +// Draw game (one frame) +void DrawGame(void) +{ + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (!gameOver) + { + // Draw gameplay area + Vector2 offset; + offset.x = screenWidth/2 - (GRID_HORIZONTAL_SIZE*SQUARE_SIZE/2) - 50; + offset.y = screenHeight/2 - ((GRID_VERTICAL_SIZE - 1)*SQUARE_SIZE/2) + SQUARE_SIZE*2; + + offset.y -= 50; // NOTE: Harcoded position! + + int controller = offset.x; + + for (int j = 0; j < GRID_VERTICAL_SIZE; j++) + { + for (int i = 0; i < GRID_HORIZONTAL_SIZE; i++) + { + // Draw each square of the grid + if (grid[i][j] == EMPTY) + { + DrawLine(offset.x, offset.y, offset.x + SQUARE_SIZE, offset.y, LIGHTGRAY ); + DrawLine(offset.x, offset.y, offset.x, offset.y + SQUARE_SIZE, LIGHTGRAY ); + DrawLine(offset.x + SQUARE_SIZE, offset.y, offset.x + SQUARE_SIZE, offset.y + SQUARE_SIZE, LIGHTGRAY ); + DrawLine(offset.x, offset.y + SQUARE_SIZE, offset.x + SQUARE_SIZE, offset.y + SQUARE_SIZE, LIGHTGRAY ); + offset.x += SQUARE_SIZE; + } + else if (grid[i][j] == FULL) + { + DrawRectangle(offset.x, offset.y, SQUARE_SIZE, SQUARE_SIZE, GRAY); + offset.x += SQUARE_SIZE; + } + else if (grid[i][j] == MOVING) + { + DrawRectangle(offset.x, offset.y, SQUARE_SIZE, SQUARE_SIZE, DARKGRAY); + offset.x += SQUARE_SIZE; + } + else if (grid[i][j] == BLOCK) + { + DrawRectangle(offset.x, offset.y, SQUARE_SIZE, SQUARE_SIZE, LIGHTGRAY); + offset.x += SQUARE_SIZE; + } + else if (grid[i][j] == FADING) + { + DrawRectangle(offset.x, offset.y, SQUARE_SIZE, SQUARE_SIZE, fadingColor); + offset.x += SQUARE_SIZE; + } + } + + offset.x = controller; + offset.y += SQUARE_SIZE; + } + + // Draw incoming piece (hardcoded) + offset.x = 500; + offset.y = 45; + + int controler = offset.x; + + for (int j = 0; j < 4; j++) + { + for (int i = 0; i < 4; i++) + { + if (incomingPiece[i][j] == EMPTY) + { + DrawLine(offset.x, offset.y, offset.x + SQUARE_SIZE, offset.y, LIGHTGRAY ); + DrawLine(offset.x, offset.y, offset.x, offset.y + SQUARE_SIZE, LIGHTGRAY ); + DrawLine(offset.x + SQUARE_SIZE, offset.y, offset.x + SQUARE_SIZE, offset.y + SQUARE_SIZE, LIGHTGRAY ); + DrawLine(offset.x, offset.y + SQUARE_SIZE, offset.x + SQUARE_SIZE, offset.y + SQUARE_SIZE, LIGHTGRAY ); + offset.x += SQUARE_SIZE; + } + else if (incomingPiece[i][j] == MOVING) + { + DrawRectangle(offset.x, offset.y, SQUARE_SIZE, SQUARE_SIZE, GRAY); + offset.x += SQUARE_SIZE; + } + } + + offset.x = controler; + offset.y += SQUARE_SIZE; + } + + DrawText("INCOMING:", offset.x, offset.y - 100, 10, GRAY); + DrawText(TextFormat("LINES: %04i", lines), offset.x, offset.y + 20, 10, GRAY); + + if (pause) DrawText("GAME PAUSED", screenWidth/2 - MeasureText("GAME PAUSED", 40)/2, screenHeight/2 - 40, 40, GRAY); + } + else DrawText("PRESS [ENTER] TO PLAY AGAIN", GetScreenWidth()/2 - MeasureText("PRESS [ENTER] TO PLAY AGAIN", 20)/2, GetScreenHeight()/2 - 50, 20, GRAY); + + EndDrawing(); +} + +// Unload game variables +void UnloadGame(void) +{ + // TODO: Unload all dynamic loaded data (textures, sounds, models...) +} + +// Update and Draw (one frame) +void UpdateDrawFrame(void) +{ + UpdateGame(); + DrawGame(); +} + +//-------------------------------------------------------------------------------------- +// Additional module functions +//-------------------------------------------------------------------------------------- +static bool Createpiece() +{ + piecePositionX = (int)((GRID_HORIZONTAL_SIZE - 4)/2); + piecePositionY = 0; + + // If the game is starting and you are going to create the first piece, we create an extra one + if (beginPlay) + { + GetRandompiece(); + beginPlay = false; + } + + // We assign the incoming piece to the actual piece + for (int i = 0; i < 4; i++) + { + for (int j = 0; j< 4; j++) + { + piece[i][j] = incomingPiece[i][j]; + } + } + + // We assign a random piece to the incoming one + GetRandompiece(); + + // Assign the piece to the grid + for (int i = piecePositionX; i < piecePositionX + 4; i++) + { + for (int j = 0; j < 4; j++) + { + if (piece[i - (int)piecePositionX][j] == MOVING) grid[i][j] = MOVING; + } + } + + return true; +} + +static void GetRandompiece() +{ + int random = GetRandomValue(0, 6); + + for (int i = 0; i < 4; i++) + { + for (int j = 0; j < 4; j++) + { + incomingPiece[i][j] = EMPTY; + } + } + + switch (random) + { + case 0: { incomingPiece[1][1] = MOVING; incomingPiece[2][1] = MOVING; incomingPiece[1][2] = MOVING; incomingPiece[2][2] = MOVING; } break; //Cube + case 1: { incomingPiece[1][0] = MOVING; incomingPiece[1][1] = MOVING; incomingPiece[1][2] = MOVING; incomingPiece[2][2] = MOVING; } break; //L + case 2: { incomingPiece[1][2] = MOVING; incomingPiece[2][0] = MOVING; incomingPiece[2][1] = MOVING; incomingPiece[2][2] = MOVING; } break; //L inversa + case 3: { incomingPiece[0][1] = MOVING; incomingPiece[1][1] = MOVING; incomingPiece[2][1] = MOVING; incomingPiece[3][1] = MOVING; } break; //Recta + case 4: { incomingPiece[1][0] = MOVING; incomingPiece[1][1] = MOVING; incomingPiece[1][2] = MOVING; incomingPiece[2][1] = MOVING; } break; //Creu tallada + case 5: { incomingPiece[1][1] = MOVING; incomingPiece[2][1] = MOVING; incomingPiece[2][2] = MOVING; incomingPiece[3][2] = MOVING; } break; //S + case 6: { incomingPiece[1][2] = MOVING; incomingPiece[2][2] = MOVING; incomingPiece[2][1] = MOVING; incomingPiece[3][1] = MOVING; } break; //S inversa + } +} + +static void ResolveFallingMovement(bool *detection, bool *pieceActive) +{ + // If we finished moving this piece, we stop it + if (*detection) + { + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if (grid[i][j] == MOVING) + { + grid[i][j] = FULL; + *detection = false; + *pieceActive = false; + } + } + } + } + else // We move down the piece + { + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if (grid[i][j] == MOVING) + { + grid[i][j+1] = MOVING; + grid[i][j] = EMPTY; + } + } + } + + piecePositionY++; + } +} + +static bool ResolveLateralMovement() +{ + bool collision = false; + + // Piece movement + if (IsKeyDown(KEY_LEFT)) // Move left + { + // Check if is possible to move to left + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if (grid[i][j] == MOVING) + { + // Check if we are touching the left wall or we have a full square at the left + if ((i-1 == 0) || (grid[i-1][j] == FULL)) collision = true; + } + } + } + + // If able, move left + if (!collision) + { + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) // We check the matrix from left to right + { + // Move everything to the left + if (grid[i][j] == MOVING) + { + grid[i-1][j] = MOVING; + grid[i][j] = EMPTY; + } + } + } + + piecePositionX--; + } + } + else if (IsKeyDown(KEY_RIGHT)) // Move right + { + // Check if is possible to move to right + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if (grid[i][j] == MOVING) + { + // Check if we are touching the right wall or we have a full square at the right + if ((i+1 == GRID_HORIZONTAL_SIZE - 1) || (grid[i+1][j] == FULL)) + { + collision = true; + + } + } + } + } + + // If able move right + if (!collision) + { + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = GRID_HORIZONTAL_SIZE - 1; i >= 1; i--) // We check the matrix from right to left + { + // Move everything to the right + if (grid[i][j] == MOVING) + { + grid[i+1][j] = MOVING; + grid[i][j] = EMPTY; + } + } + } + + piecePositionX++; + } + } + + return collision; +} + +static bool ResolveTurnMovement() +{ + // Input for turning the piece + if (IsKeyDown(KEY_UP)) + { + GridSquare aux; + bool checker = false; + + // Check all turning possibilities + if ((grid[piecePositionX + 3][piecePositionY] == MOVING) && + (grid[piecePositionX][piecePositionY] != EMPTY) && + (grid[piecePositionX][piecePositionY] != MOVING)) checker = true; + + if ((grid[piecePositionX + 3][piecePositionY + 3] == MOVING) && + (grid[piecePositionX + 3][piecePositionY] != EMPTY) && + (grid[piecePositionX + 3][piecePositionY] != MOVING)) checker = true; + + if ((grid[piecePositionX][piecePositionY + 3] == MOVING) && + (grid[piecePositionX + 3][piecePositionY + 3] != EMPTY) && + (grid[piecePositionX + 3][piecePositionY + 3] != MOVING)) checker = true; + + if ((grid[piecePositionX][piecePositionY] == MOVING) && + (grid[piecePositionX][piecePositionY + 3] != EMPTY) && + (grid[piecePositionX][piecePositionY + 3] != MOVING)) checker = true; + + if ((grid[piecePositionX + 1][piecePositionY] == MOVING) && + (grid[piecePositionX][piecePositionY + 2] != EMPTY) && + (grid[piecePositionX][piecePositionY + 2] != MOVING)) checker = true; + + if ((grid[piecePositionX + 3][piecePositionY + 1] == MOVING) && + (grid[piecePositionX + 1][piecePositionY] != EMPTY) && + (grid[piecePositionX + 1][piecePositionY] != MOVING)) checker = true; + + if ((grid[piecePositionX + 2][piecePositionY + 3] == MOVING) && + (grid[piecePositionX + 3][piecePositionY + 1] != EMPTY) && + (grid[piecePositionX + 3][piecePositionY + 1] != MOVING)) checker = true; + + if ((grid[piecePositionX][piecePositionY + 2] == MOVING) && + (grid[piecePositionX + 2][piecePositionY + 3] != EMPTY) && + (grid[piecePositionX + 2][piecePositionY + 3] != MOVING)) checker = true; + + if ((grid[piecePositionX + 2][piecePositionY] == MOVING) && + (grid[piecePositionX][piecePositionY + 1] != EMPTY) && + (grid[piecePositionX][piecePositionY + 1] != MOVING)) checker = true; + + if ((grid[piecePositionX + 3][piecePositionY + 2] == MOVING) && + (grid[piecePositionX + 2][piecePositionY] != EMPTY) && + (grid[piecePositionX + 2][piecePositionY] != MOVING)) checker = true; + + if ((grid[piecePositionX + 1][piecePositionY + 3] == MOVING) && + (grid[piecePositionX + 3][piecePositionY + 2] != EMPTY) && + (grid[piecePositionX + 3][piecePositionY + 2] != MOVING)) checker = true; + + if ((grid[piecePositionX][piecePositionY + 1] == MOVING) && + (grid[piecePositionX + 1][piecePositionY + 3] != EMPTY) && + (grid[piecePositionX + 1][piecePositionY + 3] != MOVING)) checker = true; + + if ((grid[piecePositionX + 1][piecePositionY + 1] == MOVING) && + (grid[piecePositionX + 1][piecePositionY + 2] != EMPTY) && + (grid[piecePositionX + 1][piecePositionY + 2] != MOVING)) checker = true; + + if ((grid[piecePositionX + 2][piecePositionY + 1] == MOVING) && + (grid[piecePositionX + 1][piecePositionY + 1] != EMPTY) && + (grid[piecePositionX + 1][piecePositionY + 1] != MOVING)) checker = true; + + if ((grid[piecePositionX + 2][piecePositionY + 2] == MOVING) && + (grid[piecePositionX + 2][piecePositionY + 1] != EMPTY) && + (grid[piecePositionX + 2][piecePositionY + 1] != MOVING)) checker = true; + + if ((grid[piecePositionX + 1][piecePositionY + 2] == MOVING) && + (grid[piecePositionX + 2][piecePositionY + 2] != EMPTY) && + (grid[piecePositionX + 2][piecePositionY + 2] != MOVING)) checker = true; + + if (!checker) + { + aux = piece[0][0]; + piece[0][0] = piece[3][0]; + piece[3][0] = piece[3][3]; + piece[3][3] = piece[0][3]; + piece[0][3] = aux; + + aux = piece[1][0]; + piece[1][0] = piece[3][1]; + piece[3][1] = piece[2][3]; + piece[2][3] = piece[0][2]; + piece[0][2] = aux; + + aux = piece[2][0]; + piece[2][0] = piece[3][2]; + piece[3][2] = piece[1][3]; + piece[1][3] = piece[0][1]; + piece[0][1] = aux; + + aux = piece[1][1]; + piece[1][1] = piece[2][1]; + piece[2][1] = piece[2][2]; + piece[2][2] = piece[1][2]; + piece[1][2] = aux; + } + + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if (grid[i][j] == MOVING) + { + grid[i][j] = EMPTY; + } + } + } + + for (int i = piecePositionX; i < piecePositionX + 4; i++) + { + for (int j = piecePositionY; j < piecePositionY + 4; j++) + { + if (piece[i - piecePositionX][j - piecePositionY] == MOVING) + { + grid[i][j] = MOVING; + } + } + } + + return true; + } + + return false; +} + +static void CheckDetection(bool *detection) +{ + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + if ((grid[i][j] == MOVING) && ((grid[i][j+1] == FULL) || (grid[i][j+1] == BLOCK))) *detection = true; + } + } +} + +static void CheckCompletion(bool *lineToDelete) +{ + int calculator = 0; + + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + calculator = 0; + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + // Count each square of the line + if (grid[i][j] == FULL) + { + calculator++; + } + + // Check if we completed the whole line + if (calculator == GRID_HORIZONTAL_SIZE - 2) + { + *lineToDelete = true; + calculator = 0; + // points++; + + // Mark the completed line + for (int z = 1; z < GRID_HORIZONTAL_SIZE - 1; z++) + { + grid[z][j] = FADING; + } + } + } + } +} + +static void DeleteCompleteLines() +{ + // Erase the completed line + for (int j = GRID_VERTICAL_SIZE - 2; j >= 0; j--) + { + while (grid[1][j] == FADING) + { + for (int i = 1; i < GRID_HORIZONTAL_SIZE - 1; i++) + { + grid[i][j] = EMPTY; + } + + for (int j2 = j-1; j2 >= 0; j2--) + { + for (int i2 = 1; i2 < GRID_HORIZONTAL_SIZE - 1; i2++) + { + if (grid[i2][j2] == FULL) + { + grid[i2][j2+1] = FULL; + grid[i2][j2] = EMPTY; + } + else if (grid[i2][j2] == FADING) + { + grid[i2][j2+1] = FADING; + grid[i2][j2] = EMPTY; + } + } + } + } + } +} \ No newline at end of file diff --git a/windows/templates/raylib/info.template b/windows/templates/raylib/info.template new file mode 100644 index 00000000..a196778a --- /dev/null +++ b/windows/templates/raylib/info.template @@ -0,0 +1,29 @@ +[Template] +ver=2 +Name=raylib +Name[zh_CN]=raylib +Icon=raylib-game.ico +Description=A simple interactive animation using raylib ( https://raylib.com ) +Description[zh_CN]=简单的raylib交互动画 ( https://raylib.com ) +Category=Multimedia +Category[zh_CN]=多媒体 + +[Unit0] +CName=main.c +C=raylib_c.txt + +[Unit1] +Source=raylib_boom.wav +Target=boom.wav + +[Unit2] +Source=raylib_explosion.png +Target=explosion.png + +[Project] +UnitCount=3 +Type=1 +IsCpp=0 +linker=-lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 + diff --git a/windows/templates/raylib/raylib-game.ico b/windows/templates/raylib/raylib-game.ico new file mode 100644 index 0000000000000000000000000000000000000000..ad1169842500f9bca3320eb86ad088c0c12e5215 GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/windows/templates/raylib/raylib_boom.wav b/windows/templates/raylib/raylib_boom.wav new file mode 100644 index 0000000000000000000000000000000000000000..fd18137de24b557de645f601477b9d2ab526eeb4 GIT binary patch literal 13663 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 + +#define NUM_FRAMES_PER_LINE 5 +#define NUM_LINES 5 + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - sprite explosion"); + + InitAudioDevice(); + + // Load explosion sound + Sound fxBoom = LoadSound("boom.wav"); + + // Load explosion texture + Texture2D explosion = LoadTexture("explosion.png"); + + // Init variables for animation + float frameWidth = (float)(explosion.width/NUM_FRAMES_PER_LINE); // Sprite one frame rectangle width + float frameHeight = (float)(explosion.height/NUM_LINES); // Sprite one frame rectangle height + int currentFrame = 0; + int currentLine = 0; + + Rectangle frameRec = { 0, 0, frameWidth, frameHeight }; + Vector2 position = { 0.0f, 0.0f }; + + bool active = false; + int framesCounter = 0; + + SetTargetFPS(120); + SetTraceLogLevel(LOG_WARNING); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + // Check for mouse button pressed and activate explosion (if not active) + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) ) + { + position = GetMousePosition(); + active = true; + + position.x -= frameWidth/2.0f; + position.y -= frameHeight/2.0f; + + PlaySound(fxBoom); + } + + // Compute explosion animation frames + if (active) + { + framesCounter++; + + if (framesCounter > 2) + { + currentFrame++; + + if (currentFrame >= NUM_FRAMES_PER_LINE) + { + currentFrame = 0; + currentLine++; + + if (currentLine >= NUM_LINES) + { + currentLine = 0; + active = false; + } + } + + framesCounter = 0; + } + } + + frameRec.x = frameWidth*currentFrame; + frameRec.y = frameHeight*currentLine; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw explosion required frame rectangle + if (active) DrawTextureRec(explosion, frameRec, position, WHITE); + + DrawText("Click to explode!", 440, 400, 40, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(explosion); // Unload texture + UnloadSound(fxBoom); // Unload sound + + CloseAudioDevice(); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/windows/templates/raylib/raylib_explosion.png b/windows/templates/raylib/raylib_explosion.png new file mode 100644 index 0000000000000000000000000000000000000000..6df1cf363427c1bc9405474f076a2e1aba6684ba GIT binary patch literal 830508 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�ZpCZm1;15dNlo3u>>&v7(7^##qT| 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�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

X9YTCq!6KjM?FxC0+@JIrW$r_ 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≀no@@vnd=nOR<)ZqXl{H1lN(dz8F0k} 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%0AQ~zI}Ki=C?VKn9x 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 <1u!d#PQ^46zSJqK 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%0A5fUxb^|CO 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¬8*%2d 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 Ee}ti)82|tP literal 0 HcmV?d00001 diff --git a/windows/templates/rdrawing-colors/info.template b/windows/templates/rdrawing-colors/info.template new file mode 100644 index 00000000..24e69956 --- /dev/null +++ b/windows/templates/rdrawing-colors/info.template @@ -0,0 +1,21 @@ +[Template] +ver=2 +Name=Colors +Name[zh_CN]=色彩常量 +Icon=rdrawing_colors.ico +Description=Demo for raylib & rdrawing color constants, and raygui scroll panel +Description[zh_CN]=演示raylib/rdrawing色彩常量和raygui滚动面板使用的示例程序 +Category=Multimedia +Category[zh_CN]=多媒体 + +[Unit0] +CName=main.c +C=rdrawing_colors_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lrdrawing -lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 + diff --git a/windows/templates/rdrawing-colors/rdrawing_colors.ico b/windows/templates/rdrawing-colors/rdrawing_colors.ico new file mode 100644 index 0000000000000000000000000000000000000000..000c4907d0a29b7c8a3648d3e1fd93ed61dc4e49 GIT binary patch literal 67646 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 +#include +#include + +#define RAYGUI_IMPLEMENTATION +#include + +//color classification from https://www.dofactory.com/css/color-names + +enum ColorPage{ + Red, + Pink, + Orange, + Yellow, + Green, + Blue, + Brown, + Purple, + Light, + Gray +} ; + +void drawRedColors(Image *pImg,Font font); +void drawPinkColors(Image *pImg,Font font); +void drawOrangeColors(Image *pImg,Font font); +void drawYellowColors(Image *pImg,Font font); +void drawGreenColors(Image *pImg,Font font); +void drawBlueColors(Image *pImg,Font font); +void drawBrownColors(Image *pImg,Font font); +void drawPurpleColors(Image *pImg,Font font); +void drawLightColors(Image *pImg,Font font); +void drawGrayColors(Image *pImg,Font font); + +int main() { + int currentPage=Red; + InitWindow(1000,900,"Rdrawing Predefined Colors"); + SetTraceLogLevel(LOG_WARNING); + SetTargetFPS(60); + bool fontChanged=false; + Font font; + if (FileExists("C:\\windows\\fonts\\cour.ttf")) { + font=LoadFont("C:\\windows\\fonts\\cour.ttf"); + fontChanged=true; + } else { + font=GetFontDefault(); + } + GuiSetStyle(DEFAULT,TEXT_SIZE,20); + GuiSetStyle(LISTVIEW,SCROLLBAR_WIDTH,20); + + Image img=GenImageColor(830,890,WHITE); + Rectangle panelRec = {165,5,830,890}; + Rectangle panelContentRec = {0,0,800,1190}; + Vector2 panelScroll = {1,1}; + while(!WindowShouldClose()) { + Texture texture; + BeginDrawing(); + if (GuiToggle((Rectangle){ 10, 10, 140, 30 },"Red",currentPage==Red)) { + currentPage=Red; + } + if (GuiToggle((Rectangle){ 10, 50, 140, 30 },"Pink",currentPage==Pink)) { + currentPage=Pink; + } + if (GuiToggle((Rectangle){ 10, 90, 140, 30 },"Orange",currentPage==Orange)) { + currentPage=Orange; + } + if (GuiToggle((Rectangle){ 10, 130, 140, 30 },"Yellow",currentPage==Yellow)) { + currentPage=Yellow; + } + if (GuiToggle((Rectangle){ 10, 170, 140, 30 },"Green",currentPage==Green)) { + panelContentRec = (Rectangle){0,0, + 830- 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + 1170}; + if (currentPage!=Green) { + panelScroll=(Vector2){1,1}; + } + currentPage=Green; + } + if (GuiToggle((Rectangle){ 10, 210, 140, 30 },"Blue",currentPage==Blue)) { + panelContentRec = (Rectangle){0,0, + 830- 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), + 1220}; + if (currentPage!=Blue) { + panelScroll=(Vector2){1,1}; + } + currentPage=Blue; + } + if (GuiToggle((Rectangle){ 10, 250, 140, 30 },"Brown",currentPage==Brown)) { + currentPage=Brown; + } + if (GuiToggle((Rectangle){ 10, 290, 140, 30 },"Purple",currentPage==Purple)) { + currentPage=Purple; + } + if (GuiToggle((Rectangle){ 10, 330, 140, 30 },"Light",currentPage==Light)) { + currentPage=Light; + } + if (GuiToggle((Rectangle){ 10, 370, 140, 30 },"Gray",currentPage==Gray)) { + currentPage=Gray; + } + ImageClearBackground(&img,WHITE); + switch(currentPage) { + case Red: + drawRedColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Pink: + drawPinkColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Orange: + drawOrangeColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Yellow: + drawYellowColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Green: { + Rectangle view = GuiScrollPanel(panelRec,NULL,panelContentRec,&panelScroll); + Image tmpImage = GenImageColor(830,1170,WHITE); + Image tmpImage2 = GenImageColor(view.width,view.height,WHITE); + drawGreenColors(&tmpImage,font); + ImageDraw(&tmpImage2,tmpImage, + (Rectangle){view.x-panelRec.x-panelScroll.x,view.y-panelRec.y-panelScroll.y,view.width,view.height}, + (Rectangle){0,0,view.width,view.height},WHITE); + texture = LoadTextureFromImage(tmpImage2); + UnloadImage(tmpImage2); + UnloadImage(tmpImage); + } + break; + case Blue: { + Rectangle view = GuiScrollPanel(panelRec,NULL,panelContentRec,&panelScroll); + Image tmpImage = GenImageColor(830,1220,WHITE); + Image tmpImage2 = GenImageColor(view.width,view.height,WHITE); + drawBlueColors(&tmpImage,font); + ImageDraw(&tmpImage2,tmpImage, + (Rectangle){view.x-panelRec.x-panelScroll.x,view.y-panelRec.y-panelScroll.y,view.width,view.height}, + (Rectangle){0,0,view.width,view.height},WHITE); + texture = LoadTextureFromImage(tmpImage2); + UnloadImage(tmpImage2); + UnloadImage(tmpImage); + } + break; + case Brown: + drawBrownColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Purple: + drawPurpleColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Light: + drawLightColors(&img,font); + texture = LoadTextureFromImage(img); + break; + case Gray: + drawGrayColors(&img,font); + texture = LoadTextureFromImage(img); + break; + } + ClearBackground(LIGHTGRAY); + DrawTexture(texture,165,5,WHITE); + EndDrawing(); + UnloadTexture(texture); + } + + if (fontChanged) { + UnloadFont(font); + } + //Clean up + UnloadImage(img); + CloseWindow(); +} + +void drawColor(Image* pImg, Font font, int x, int y, Color color, const char* colorName) { + char buffer[255]; + ImageFillRectangleEx(pImg,x,y,200,40,color); + ImageDrawRectangleEx(pImg,x,y,200,40,2,BLACK); + ImageDrawTextEx(pImg,font,colorName,(Vector2){x+230,y+10},20,1,BLACK); + sprintf(buffer,"0x%02X%02X%02X",color.r,color.g,color.b); + ImageDrawTextEx(pImg,font,buffer,(Vector2){x+600,y+10},20,1,BLACK); +} + +void drawRedColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,LIGHTSALMON,"LIGHTSALMON"); + drawColor(pImg,font,50,70,DARKSALMON,"DARKSALMON"); + drawColor(pImg,font,50,120,SALMON,"SALMON"); + drawColor(pImg,font,50,170,LIGHTCORAL,"LIGHTCORAL"); + drawColor(pImg,font,50,220,INDIANRED,"INDIANRED"); + drawColor(pImg,font,50,270,RED,"RED"); + drawColor(pImg,font,50,320,CRIMSON,"CRIMSON"); + drawColor(pImg,font,50,370,MAROON,"MAROON"); + drawColor(pImg,font,50,420,FIREBRICK,"FIREBRICK"); + drawColor(pImg,font,50,470,DARKRED,"DARKRED"); +} + +void drawPinkColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,PINK,"PINK"); + drawColor(pImg,font,50,70,LIGHTPINK,"LIGHTPINK"); + drawColor(pImg,font,50,120,HOTPINK,"HOTPINK"); + drawColor(pImg,font,50,170,DEEPPINK,"DEEPPINK"); + drawColor(pImg,font,50,220,PALEVIOLETRED,"PALEVIOLETRED"); + drawColor(pImg,font,50,270,MEDIUMVIOLETRED,"MEDIUMVIOLETRED"); +} + +void drawOrangeColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,GOLD,"GOLD"); + drawColor(pImg,font,50,70,ORANGE,"ORANGE"); + drawColor(pImg,font,50,120,DARKORANGE,"DARKORANGE"); + drawColor(pImg,font,50,170,LIGHTSALMON,"LIGHTSALMON"); + drawColor(pImg,font,50,220,CORAL,"CORAL"); + drawColor(pImg,font,50,270,TOMATO,"TOMATO"); + drawColor(pImg,font,50,320,ORANGERED,"ORANGERED"); +} + +void drawYellowColors(Image* pImg, Font font) { + drawColor(pImg,font,50,20,LIGHTYELLOW,"LIGHTYELLOW"); + drawColor(pImg,font,50,70,LEMONCHIFFON,"LEMONCHIFFON"); + drawColor(pImg,font,50,120,LIGHTGOLDENRODYELLOW,"LIGHTGOLDENRODYELLOW"); + drawColor(pImg,font,50,170,YELLOW,"YELLOW"); + drawColor(pImg,font,50,220,PAPAYAWHIP,"PAPAYAWHIP"); + drawColor(pImg,font,50,270,MOCCASIN,"MOCCASIN"); + drawColor(pImg,font,50,320,PEACHPUFF,"PEACHPUFF"); + drawColor(pImg,font,50,370,PALEGOLDENROD,"PALEGOLDENROD"); + drawColor(pImg,font,50,420,KHAKI,"KHAKI"); + drawColor(pImg,font,50,470,DARKKHAKI,"DARKKHAKI"); +} + +void drawGreenColors(Image* pImg, Font font) { + drawColor(pImg,font,50,20,GREENYELLOW,"GREENYELLOW"); + drawColor(pImg,font,50,70,CHARTREUSE,"CHARTREUSE"); + drawColor(pImg,font,50,120,LAWNGREEN,"LAWNGREEN"); + drawColor(pImg,font,50,170,LIME,"LIME"); + drawColor(pImg,font,50,220,PALEGREEN,"PALEGREEN"); + drawColor(pImg,font,50,270,LIGHTGREEN,"LIGHTGREEN"); + drawColor(pImg,font,50,320,SPRINGGREEN,"SPRINGGREEN"); + drawColor(pImg,font,50,370,MEDIUMSPRINGGREEN,"MEDIUMSPRINGGREEN"); + drawColor(pImg,font,50,420,LIMEGREEN,"LIMEGREEN"); + drawColor(pImg,font,50,470,MEDIUMSEAGREEN,"MEDIUMSEAGREEN"); + drawColor(pImg,font,50,520,SEAGREEN,"SEAGREEN"); + drawColor(pImg,font,50,570,FORESTGREEN,"FORESTGREEN"); + drawColor(pImg,font,50,620,GREEN,"GREEN"); + drawColor(pImg,font,50,670,DARKGREEN,"DARKGREEN"); + drawColor(pImg,font,50,720,YELLOWGREEN,"YELLOWGREEN"); + drawColor(pImg,font,50,770,OLIVEDRAB,"OLIVEDRAB"); + drawColor(pImg,font,50,820,OLIVE,"OLIVE"); + drawColor(pImg,font,50,870,DARKOLIVEGREEN,"DARKOLIVEGREEN"); + drawColor(pImg,font,50,920,MEDIUMAQUAMARINE,"MEDIUMAQUAMARINE"); + drawColor(pImg,font,50,970,DARKSEAGREEN,"DARKSEAGREEN"); + drawColor(pImg,font,50,1020,LIGHTSEAGREEN,"LIGHTSEAGREEN"); + drawColor(pImg,font,50,1070,DARKCYAN,"DARKCYAN"); + drawColor(pImg,font,50,1120,TEAL,"TEAL"); +} + +void drawBlueColors(Image* pImg, Font font) { + drawColor(pImg,font,50,20,LIGHTCYAN,"LIGHTCYAN"); + drawColor(pImg,font,50,70,CYAN,"AQUA / CYAN"); + drawColor(pImg,font,50,120,AQUAMARINE,"AQUAMARINE"); + drawColor(pImg,font,50,170,PALETURQUOISE,"PALETURQUOISE"); + drawColor(pImg,font,50,220,TURQUOISE,"TURQUOISE"); + drawColor(pImg,font,50,270,MEDIUMTURQUOISE,"MEDIUMTURQUOISE"); + drawColor(pImg,font,50,320,DARKTURQUOISE,"DARKTURQUOISE"); + drawColor(pImg,font,50,370,CADETBLUE,"CADETBLUE"); + drawColor(pImg,font,50,420,STEELBLUE,"STEELBLUE"); + drawColor(pImg,font,50,470,LIGHTSTEELBLUE,"LIGHTSTEELBLUE"); + drawColor(pImg,font,50,520,POWDERBLUE,"POWDERBLUE"); + drawColor(pImg,font,50,570,LIGHTBLUE,"LIGHTBLUE"); + drawColor(pImg,font,50,620,SKYBLUE,"SKYBLUE"); + drawColor(pImg,font,50,670,LIGHTSKYBLUE,"LIGHTSKYBLUE"); + drawColor(pImg,font,50,720,DEEPSKYBLUE,"BEEPSKYBLUE"); + drawColor(pImg,font,50,770,DODGERBLUE,"DODGERBLUE"); + drawColor(pImg,font,50,820,CORNFLOWERBLUE,"CORNFLOWERBLUE"); + drawColor(pImg,font,50,870,MEDIUMSLATEBLUE,"MEDIUMSLATEBLUE"); + drawColor(pImg,font,50,920,ROYALBLUE,"ROYALBLUE"); + drawColor(pImg,font,50,970,BLUE,"BLUE"); + drawColor(pImg,font,50,1020,MEDIUMBLUE,"MEDIUMBLUE"); + drawColor(pImg,font,50,1070,DARKBLUE,"DARKBLUE"); + drawColor(pImg,font,50,1120,NAVY,"NAVY"); + drawColor(pImg,font,50,1170,MIDNIGHTBLUE,"MIDNIGHTBLUE"); +} + +void drawBrownColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,CORNSILK,"CORNSILK"); + drawColor(pImg,font,50,70,BLANCHEDALMOND,"BLANCHEDALMOND"); + drawColor(pImg,font,50,120,BISQUE,"BISQUE"); + drawColor(pImg,font,50,170,NAVAJOWHITE,"NAVAJOWHITE"); + drawColor(pImg,font,50,220,WHEAT,"WHEAT"); + drawColor(pImg,font,50,270,BURLYWOOD,"BURLYWOOD"); + drawColor(pImg,font,50,320,TAN,"TAN"); + drawColor(pImg,font,50,370,GOLDENROD,"GOLDENROD"); + drawColor(pImg,font,50,420,DARKGOLDENROD,"DARKGOLDENROD"); + drawColor(pImg,font,50,470,ROSYBROWN,"ROSYBROWN"); + drawColor(pImg,font,50,520,SANDYBROWN,"SANDYBROWN"); + drawColor(pImg,font,50,570,BEIGE,"BEIGE"); + drawColor(pImg,font,50,620,PERU,"PERU"); + drawColor(pImg,font,50,670,CHOCOLATE,"CHOCOLATE"); + drawColor(pImg,font,50,720,SIENNA,"SIENNA"); + drawColor(pImg,font,50,770,SADDLEBROWN,"SADDLEBROWN"); + drawColor(pImg,font,50,820,BROWN,"BROWN"); +} + +void drawPurpleColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,LAVENDER,"LAVENDER"); + drawColor(pImg,font,50,70,THISTLE,"THISTLE"); + drawColor(pImg,font,50,120,PLUM,"PLUM"); + drawColor(pImg,font,50,170,VIOLET,"VIOLET"); + drawColor(pImg,font,50,220,ORCHID,"ORCHID"); + drawColor(pImg,font,50,270,FUCHSIA,"FUCHSIA / MAGENTA"); + drawColor(pImg,font,50,320,MEDIUMORCHID,"MEDIUMORCHID"); + drawColor(pImg,font,50,370,BLUEVIOLET,"BLUEVIOLET"); + drawColor(pImg,font,50,420,DARKVIOLET,"DARKVIOLET"); + drawColor(pImg,font,50,470,DARKORCHID,"DARKORCHID"); + drawColor(pImg,font,50,520,DARKMAGENTA,"DARKMAGENTA"); + drawColor(pImg,font,50,570,PURPLE,"PURPLE"); + drawColor(pImg,font,50,620,INDIGO,"INDIGO"); + drawColor(pImg,font,50,670,MEDIUMSLATEBLUE,"MEDIUMSLATEBLUE"); + drawColor(pImg,font,50,720,SLATEBLUE,"SLATEBLUE"); + drawColor(pImg,font,50,770,DARKSLATEBLUE,"DARKSLATEBLUE"); +} + +void drawLightColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,WHITE,"WHITE"); + drawColor(pImg,font,50,70,SNOW,"SNOW"); + drawColor(pImg,font,50,120,FLORALWHITE,"FLORALWHITE"); + drawColor(pImg,font,50,170,IVORY,"IVORY"); + drawColor(pImg,font,50,220,HONEYDEW,"HONEYDEW"); + drawColor(pImg,font,50,270,MINTCREAM,"MINTCREAM"); + drawColor(pImg,font,50,320,AZURE,"AZURE"); + drawColor(pImg,font,50,370,ALICEBLUE,"ALICEBLUE"); + drawColor(pImg,font,50,420,GHOSTWHITE,"GHOSTWHITE"); + drawColor(pImg,font,50,470,WHITESMOKE,"WHITESMOKE"); + drawColor(pImg,font,50,520,SEASHELL,"SEASHELL"); + drawColor(pImg,font,50,570,OLDLACE,"OLDLACE"); + drawColor(pImg,font,50,620,ANTIQUEWHITE,"ANTIQUEWHITE"); + drawColor(pImg,font,50,670,LINEN,"LINEN"); + drawColor(pImg,font,50,720,LAVENDERBLUSH,"LAVENDERBLUSH"); + drawColor(pImg,font,50,770,MISTYROSE,"MISTYROSE"); +} + +void drawGrayColors(Image *pImg,Font font) { + drawColor(pImg,font,50,20,GAINSBORO,"GAINSBORO"); + drawColor(pImg,font,50,70,LIGHTGRAY,"LIGHTGRAY"); + drawColor(pImg,font,50,120,SILVER,"SILVER"); + drawColor(pImg,font,50,170,DARKGRAY,"DARKGRAY"); + drawColor(pImg,font,50,220,GRAY,"GRAY"); + drawColor(pImg,font,50,270,DIMGRAY,"DIMGRAY"); + drawColor(pImg,font,50,320,LIGHTSLATEGRAY,"LIGHTSLATEGRAY"); + drawColor(pImg,font,50,370,SLATEGRAY,"SLATEGRAY"); + drawColor(pImg,font,50,420,DARKSLATEGRAY,"DARKSLATEGRAY"); + drawColor(pImg,font,50,470,BLACK,"BLACK"); +} \ No newline at end of file diff --git a/windows/templates/rdrawing-doraemon/info.template b/windows/templates/rdrawing-doraemon/info.template new file mode 100644 index 00000000..6d9ca521 --- /dev/null +++ b/windows/templates/rdrawing-doraemon/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=Doraemon +Name[zh_CN]=哆啦A梦 +Icon=rdrawing-doraemon.ico +Description=A simple doraemon app using rdrawing (https://github.com/royqh1979/raylib-drawing) +Description[zh_CN]=使用rdrawing制作的哆啦A梦 (https://github.com/royqh1979/raylib-drawing) +Category=Game +Category[zh_CN]=游戏 + +[Unit0] +CName=main.c +C=rdrawing_doraemon_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lrdrawing -lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/rdrawing-doraemon/rdrawing-doraemon.ico b/windows/templates/rdrawing-doraemon/rdrawing-doraemon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e55edf0ab2e9dba8cfcea69e85b8cf432a9848e2 GIT binary patch literal 67646 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 +#include +#include + +#define SHRINK_FRAMES 2 + +Image genBodyImage(); +Image genShrinkImage0(); +Image genShrinkImage1(); +Image genShrinkImage2(); +Image genShrinkImage3(); +Image genShrinkImage4(); + +int main() { + InitWindow(800,600,"Doraemon"); + SetTraceLogLevel(LOG_WARNING); + SetTargetFPS(30); + + SetRandomSeed(time(NULL)); + + Image img=genBodyImage(); + Image shrinkImages[9]; + shrinkImages[0]=genShrinkImage0(); + shrinkImages[1]=genShrinkImage1(); + shrinkImages[2]=genShrinkImage2(); + shrinkImages[3]=genShrinkImage3(); + shrinkImages[4]=genShrinkImage4(); + shrinkImages[5]=genShrinkImage3(); + shrinkImages[6]=genShrinkImage2(); + shrinkImages[7]=genShrinkImage1(); + shrinkImages[8]=genShrinkImage0(); + + Texture texture = LoadTextureFromImage(img); + Texture shrinkTexture; + int stage = -1; + int repeats = 0; + + while(!WindowShouldClose()) { + if (stage==-1) { + int r = GetRandomValue(1,30); + if (r==1) { + stage=0; + repeats=0; + } + } + int idx=0; + if (stage>=0) { + idx=stage / SHRINK_FRAMES; + if (idx<9) { + shrinkTexture=LoadTextureFromImage(shrinkImages[idx]); + } else { + idx=0; + stage=0; + repeats++; + if (repeats>=3) + stage=-1; + } + } + if (stage>=0) { + stage++; + } + + BeginDrawing(); + ClearBackground(WHITE); + DrawTexture(texture,0,0,WHITE); + DrawTexture(shrinkTexture,0,0,WHITE); + EndDrawing(); + UnloadTexture(shrinkTexture); + } + + //Clean up + UnloadTexture(texture); + UnloadImage(img); + for (int i=0;i<9;i++) { + UnloadImage(shrinkImages[i]); + } + CloseWindow(); +} + +Image genBodyImage(){ + Image img=GenImageColor(800,600,WHITE); + // 画头 + Color fillColor = (Color){7,190,234,255}; + Color color=BLACK; + ImageFillRoundRectEx(&img,265, 94, 270, 260, 124, 124,fillColor); + ImageDrawRoundRectEx(&img,265, 94, 270, 260, 124, 124,1,color); + + fillColor = WHITE; // 脸 + ImageFillEllipseEx(&img, 400, 256, 115, 95, fillColor); + + ImageFillRoundRectEx(&img,337, 131, 63, 74, 28, 28, fillColor); // 右眼 + ImageDrawRoundRectEx(&img,337, 131, 63, 74, 28, 28,1, color); + ImageFillRoundRectEx(&img,400, 131, 63, 74, 28, 28, fillColor); // 左眼 + ImageDrawRoundRectEx(&img,400, 131, 63, 74, 28, 28,1, color); + + fillColor = BLACK; + ImageFillCircleEx(&img,384,184,6, fillColor); // 右眼球 + ImageFillCircleEx(&img,416,184,6, fillColor); // 左眼球 + + fillColor = (Color){201, 62, 0, 255}; // 鼻子 + ImageFillCircleEx(&img, 400, 208, 15, fillColor); + + ImageDrawLineEx(&img,400,223,400,296,1,color); // 人中 + ImageDrawArcEx(&img,400, 192, 108, 108, PI * 5 / 4, PI * 7 / 4,1,color); // 嘴 + + ImageDrawLineEx(&img,358, 227, 310, 209,1,color); // 胡子 + ImageDrawLineEx(&img,442, 227, 490, 209,1,color); + ImageDrawLineEx(&img,359, 235, 308, 235,1,color); + ImageDrawLineEx(&img,441, 235, 492, 235,1,color); + ImageDrawLineEx(&img,358, 243, 310, 261,1,color); + ImageDrawLineEx(&img,442, 243, 490, 261,1,color); + + // 画身体 + ImageDrawLineEx(&img, 319, 332, 262, 372,1,color); // 手臂(上) + ImageDrawLineEx(&img, 481, 332, 538, 372,1,color); + ImageDrawLineEx(&img, 304, 396, 284, 410,1,color); // 手臂(下) + ImageDrawLineEx(&img, 496, 396, 516, 410,1,color); + + ImageDrawLineEx(&img, 304, 385, 304, 478,1,color); // 腿外侧 + ImageDrawLineEx(&img, 496, 385, 496, 478,1,color); + ImageDrawArcEx(&img, 400, 479, 15,11,0,PI,1,color); // 腿内侧 + + fillColor=WHITE; // 手 + ImageFillCircleEx(&img, 260,399,27, fillColor); + ImageDrawCircleEx(&img, 260,399,27, 1, color); + ImageFillCircleEx(&img, 540,399,27, fillColor); + ImageDrawCircleEx(&img, 540,399,27, 1, color); + ImageFillRoundRectEx(&img,288,478,110,27,12,12,fillColor); // 脚 + ImageDrawRoundRectEx(&img,288,478,110,27,12,12,1,color); + ImageFillRoundRectEx(&img,402,478,110,27,12,12,fillColor); + ImageDrawRoundRectEx(&img,402,478,110,27,12,12,1,color); + + fillColor=(Color){7,190,234,255}; // 身体填充蓝色 + ImageFloodFill(&img,400,400,BLACK,fillColor); + + fillColor=WHITE; // 肚皮 + ImageFillCircleEx(&img,400,381,75,fillColor); + ImageFillRectangleEx(&img,340,304,120,20,fillColor); // 用白色矩形擦掉多余的肚皮 + + ImageDrawSectorEx(&img,400,381,58, 58,PI,2*PI,1,color); // 口袋 + + // 画铃铛 + fillColor=(Color){169, 38, 0,255}; // 绳子 + ImageFillRoundRectEx(&img,300,323,200,19,12,12,fillColor); + + fillColor=(Color){245, 237, 38,255}; // 铃铛外形 + ImageFillCircleEx(&img,400,349,19,fillColor); + + fillColor=BLACK; // 铃铛上的洞 + ImageFillEllipseEx(&img,400,354,4,4,fillColor); + ImageDrawLineEx(&img,400,357,400,368,3,color); + + ImageDrawLineEx(&img,384,340,416,340,1,color); // 铃铛上的纹路 + ImageDrawLineEx(&img,384,344,418,344,1,color); + return img; +} + +Image genShrinkImage0() { + Image img = GenImageColor(800,600, BLANK); + Color fillColor=WHITE; + Color color=BLACK; + ImageFillRoundRectEx(&img,337, 131, 63, 74, 28, 28, fillColor); // 右眼 + ImageFillRoundRectEx(&img,400, 131, 63, 74, 28, 28, fillColor); // 左眼 + ImageDrawRoundRectEx(&img,337, 131, 63, 74, 28, 28,1, color); + ImageDrawRoundRectEx(&img,400, 131, 63, 74, 28, 28,1, color); + + fillColor = BLACK; + ImageFillCircleEx(&img,384,184,6, fillColor); // 右眼球 + ImageFillCircleEx(&img,416,184,6, fillColor); // 左眼球 + fillColor = (Color){201, 62, 0, 255}; // 鼻子 + ImageFillCircleEx(&img, 400, 208, 15, fillColor); + return img; +} + +Image genShrinkImage1() { + Image img = GenImageColor(800,600, BLANK); + Color fillColor=WHITE; + Color color=BLACK; + ImageFillRoundRectEx(&img,337, 131, 63, 74, 28, 28, fillColor); // 右眼 + ImageFillRoundRectEx(&img,400, 131, 63, 74, 28, 28, fillColor); // 左眼 + ImageDrawRoundRectEx(&img,337, 150, 63, 37, 28, 28, 1, color); + ImageDrawRoundRectEx(&img,400, 150, 63, 37, 28, 28, 1, color); + + ImageFillRectangleEx(&img,337,168,63,19,fillColor); + ImageFillRectangleEx(&img,400,168,63,19,fillColor); + + ImageDrawRoundRectEx(&img,337, 131, 63, 74, 28, 28,1, color); + ImageDrawRoundRectEx(&img,400, 131, 63, 74, 28, 28,1, color); + + fillColor = BLACK; + ImageFillCircleEx(&img,384,184,6, fillColor); // 右眼球 + ImageFillCircleEx(&img,416,184,6, fillColor); // 左眼球 + fillColor = (Color){201, 62, 0, 255}; // 鼻子 + ImageFillCircleEx(&img, 400, 208, 15, fillColor); + return img; +} + +Image genShrinkImage2() { + Image img=GenImageColor(800,600,BLANK); + Color fillColor=WHITE; + Color color=BLACK; + ImageFillRoundRectEx(&img,337, 131, 63, 74, 28, 28, fillColor); // 右眼 + ImageFillRoundRectEx(&img,400, 131, 63, 74, 28, 28, fillColor); // 左眼 + + ImageDrawLineEx(&img,337,168,399,168,1,color); + ImageDrawLineEx(&img,400,168,462,168,1,color); + + ImageDrawRoundRectEx(&img,337, 131, 63, 74, 28, 28,1, color); + ImageDrawRoundRectEx(&img,400, 131, 63, 74, 28, 28,1, color); + fillColor = (Color){201, 62, 0, 255}; // 鼻子 + ImageFillCircleEx(&img, 400, 208, 15, fillColor); + return img; +} + +Image genShrinkImage3(){ + Image img=GenImageColor(800,600,BLANK); + Color fillColor=WHITE; + Color color=BLACK; + ImageFillRoundRectEx(&img,337, 131, 63, 74, 28, 28, fillColor); // 右眼 + ImageFillRoundRectEx(&img,400, 131, 63, 74, 28, 28, fillColor); // 左眼 + ImageDrawRoundRectEx(&img,337, 150, 63, 37, 28, 28, 1, color); + ImageDrawRoundRectEx(&img,400, 150, 63, 37, 28, 28, 1, color); + + ImageFillRectangleEx(&img,337,150,63,19,fillColor); + ImageFillRectangleEx(&img,400,150,63,19,fillColor); + + ImageDrawRoundRectEx(&img,337, 131, 63, 74, 28, 28,1, color); + ImageDrawRoundRectEx(&img,400, 131, 63, 74, 28, 28,1, color); + fillColor = (Color){201, 62, 0, 255}; // 鼻子 + ImageFillCircleEx(&img, 400, 208, 15, fillColor); + return img; +} + +Image genShrinkImage4() { + Image img=GenImageColor(800,600,BLANK); + Color fillColor=WHITE; + Color color=BLACK; + ImageFillRoundRectEx(&img,337, 131, 63, 74, 28, 28, fillColor); // 右眼 + ImageFillRoundRectEx(&img,400, 131, 63, 74, 28, 28, fillColor); // 左眼 + + ImageDrawRoundRectEx(&img,337, 131, 63, 74, 28, 28,1, color); + ImageDrawRoundRectEx(&img,400, 131, 63, 74, 28, 28,1, color); + fillColor = (Color){201, 62, 0, 255}; // 鼻子 + ImageFillCircleEx(&img, 400, 208, 15, fillColor); + return img; +} diff --git a/windows/templates/rdrawing/info.template b/windows/templates/rdrawing/info.template new file mode 100644 index 00000000..6b0a2a04 --- /dev/null +++ b/windows/templates/rdrawing/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=rdrawing +Name[zh_CN]=rdrawing +Icon=rdrawing.ico +Description=A simple 2d drawing app using raylib and rdrawing +Description[zh_CN]=基于raylib和rdrawing的2维绘图程序 (https://github.com/royqh1979/raylib-drawing) +Category=Multimedia +Category[zh_CN]=多媒体 + +[Unit0] +CName=main.c +C=rdrawing_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-lrdrawing -lraylib -lopengl32 -lgdi32 -lwinmm +ExecEncoding=UTF-8 diff --git a/windows/templates/rdrawing/rdrawing.ico b/windows/templates/rdrawing/rdrawing.ico new file mode 100644 index 0000000000000000000000000000000000000000..054968fdc28e3b6acf7d330068db56a1df6db3df GIT binary patch literal 67646 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 +#include +#include + + +void paintstar(Image* pImage, double x, double y, double r, double a) +{ + int vx[5]; + int vy[5]; + for (int i = 0; i < 5; ++i) + { + vx[i] = (int)( -cos( PI * 4 / 5 * i + a ) * r + x ); + vy[i] = (int)( sin( PI * 4 / 5 * i + a) * r + y ); + } + ImageFillPolygonEx(pImage,vx,vy,5,LIGHTRED); + ImageDrawPolygonEx(pImage,vx,vy,5,2,DARKBROWN); +} + +int main() { + InitWindow(640,480,"rdrawing"); + SetTraceLogLevel(LOG_WARNING); + SetTargetFPS(60); + + Image img=GenImageColor(640,480,BLANK); + + double r = 0; + while(!WindowShouldClose()) { + //update datas + r += 0.02; + if (r > PI * 2) r -= PI * 2; + + //update image (in CPU) + ImageClearBackground(&img,BLANK); + paintstar(&img,320,240,200,r); + + //Drawing in GPU + Texture texture = LoadTextureFromImage(img); + BeginDrawing(); + ClearBackground(WHITE); + DrawTexture(texture,0,0,WHITE); + EndDrawing(); + UnloadTexture(texture); + } + + //Clean up + UnloadImage(img); + CloseWindow(); +} \ No newline at end of file diff --git a/windows/templates/sqlite/info.template b/windows/templates/sqlite/info.template new file mode 100644 index 00000000..10b0ded4 --- /dev/null +++ b/windows/templates/sqlite/info.template @@ -0,0 +1,19 @@ +[Template] +ver=2 +Name=Sqlite3 +Icon=sqlite.ico +Description=A Sqlite3 API Example +Description[zh_CN]=Sqlite3 示例程序 +Category=Database +Category[zh_CN]=数据库 + +[Unit0] +CName=main.c +C=sqlite_c.txt + +[Project] +UnitCount=1 +Type=1 +Compiler= +CppCompiler= +Linker=-lsqlite3 diff --git a/windows/templates/sqlite/sqlite.ico b/windows/templates/sqlite/sqlite.ico new file mode 100644 index 0000000000000000000000000000000000000000..2d8f08a1d2255afe33751a1d1c65c96278e1ca8d GIT binary patch literal 766 zcmah{v2KGf6g-NhjM=)v*uTI-q;$ytuvEfhhJKU>h75c|#n>?;1LE}_#<4>y^_lbY z`R>^kHc+tDwSmU>3-HSPM%08Q3Iq+*{tgH5gL5IV=Mdg|W))=pAfh9JO{cUAVNNF- z$C@wi*FNLs*0&!vP3-yQb2zuDz}$u*FQ7bR29 +#include +#include + +int print_record(void *,int,char **,char **); + +int main(void){ + const char *sql_drop_table="drop table if exists t"; + const char *sql_create_table="create table t(id int primary key,msg varchar(128))"; + char *errmsg = 0; + int ret = 0; + int i = 0; + sqlite3_stmt *stmt; + char ca[255]; + + char **dbresult; + int j,nrow,ncolumn,index; + + sqlite3 *db = 0; + ret = sqlite3_open("./sqlite3-demo.db",&db); + if(ret != SQLITE_OK){ + fprintf(stderr,"Cannot open db: %s\n",sqlite3_errmsg(db)); + return 1; + } + printf("Open database\n"); + + ret = sqlite3_exec(db,sql_drop_table,NULL,NULL,&errmsg); + if(ret != SQLITE_OK){ + fprintf(stderr,"drop table fail: %s\n",errmsg); + } + ret &= sqlite3_exec(db,sql_create_table,NULL,NULL,&errmsg); + if(ret != SQLITE_OK){ + fprintf(stderr,"create table fail: %s\n",errmsg); + } + + ret = sqlite3_exec(db,"insert into t(id,msg) values(1,'Ady Liu')",NULL,NULL,&errmsg); + printf("Insert a record %s\n",ret == SQLITE_OK ? "OK":"FAIL"); + ret = sqlite3_exec(db,"insert into t(id,msg) values(2,'IMXYLZ')",NULL,NULL,&errmsg); + printf("Insert a record %s\n",ret == SQLITE_OK ? "OK":"FAIL"); + ret = sqlite3_exec(db,"delete from t where id < 3",NULL,NULL,&errmsg); + printf("Delete records: %s\n",ret == SQLITE_OK ? "OK":"FAIL"); + + + //prepare statement + sqlite3_prepare_v2(db,"insert into t(id,msg) values(?,?)",-1,&stmt,0); + for(i=10;i<20;i++){ + sprintf(ca,"HELLO#%i",i); + sqlite3_bind_int(stmt,1,i); + sqlite3_bind_text(stmt,2,ca,strlen(ca),SQLITE_STATIC); + sqlite3_step(stmt); + sqlite3_reset(stmt); + } + sqlite3_finalize(stmt); + + //select data + ret = sqlite3_exec(db,"select * from t",print_record,NULL,&errmsg); + if(ret != SQLITE_OK){ + fprintf(stderr,"query SQL error: %s\n",errmsg); + } + + sqlite3_exec(db,"update t set msg='MESSAGE#10' where id=10",NULL,NULL,&errmsg); + //select table + ret = sqlite3_get_table(db,"select * from t",&dbresult,&nrow,&ncolumn,&errmsg); + if(ret == SQLITE_OK){ + printf("query %i records.\n",nrow); + index=ncolumn; + for(i=0;i_m3iOV%+omh3HP)t-tHSxWo9 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 v`S8~JAAC;hxqy@6 +#include +#include +#include +#define PORT 8888 +#define SERVER_IP "127.0.0.1" +#define BUFFER_SIZE 4196 + +const char* kExitFlag = "exit"; + +int main() { + // 初始化socket dll。 + WORD winsock_version = MAKEWORD(2,2); + WSADATA wsa_data; + if (WSAStartup(winsock_version, &wsa_data) != 0) { + printf("Failed to init socket!\n"); + return 1; + } + + SOCKET client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (client_socket == INVALID_SOCKET) { + printf("Failed to create server socket!\n"); + return 2; + } + + struct sockaddr_in server_addr; + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(PORT); + server_addr.sin_addr.S_un.S_addr = inet_addr(SERVER_IP); + if (connect(client_socket, (LPSOCKADDR)&server_addr, sizeof(server_addr)) == SOCKET_ERROR) { + printf("Failed to connect server: %ld !\n", GetLastError()); + return 3; + } + + char recv_data[BUFFER_SIZE+1]; + + while (true) { + char data[BUFFER_SIZE+1]; + printf("Input data: "); + scanf("%s",data); + if (send(client_socket, data, strlen(data), 0) < 0) { + printf("Failed to send data!\n"); + break; + } + + int ret = recv(client_socket, recv_data, BUFFER_SIZE, 0); + if (ret < 0) { + printf("Failed to receive data!\n"); + break; + } + recv_data[ret]=0; // correctly ends received string + + printf("Receive data from server: \"%s\"\n",recv_data); + + if (strcmp(data,kExitFlag)==0) { + printf("Exit!\n"); + break; + } + } + + closesocket(client_socket); + WSACleanup(); + + return 0; +} \ No newline at end of file diff --git a/windows/templates/tcpserver/info.template b/windows/templates/tcpserver/info.template new file mode 100644 index 00000000..6b27f49f --- /dev/null +++ b/windows/templates/tcpserver/info.template @@ -0,0 +1,20 @@ +[Template] +ver=2 +Name=TCP Server +Name[zh_CN]=TCP服务器 +Icon=tcpserver.ico +Description=A winsock2 tcp server demo +Description[zh_CN]=基于Winsock2的TCP服务器程序示例 +Category=Network +Category[zh_CN]=网络 + +[Unit0] +CName=main.c +C=tcpserver_c.txt + +[Project] +UnitCount=1 +Type=1 +Compiler= +CppCompiler= +Linker=-lws2_32 diff --git a/windows/templates/tcpserver/tcpserver.ico b/windows/templates/tcpserver/tcpserver.ico new file mode 100644 index 0000000000000000000000000000000000000000..b21a8bbe184a2b1948475fa2f659c704a15fcb62 GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/windows/templates/tcpserver/tcpserver_c.txt b/windows/templates/tcpserver/tcpserver_c.txt new file mode 100644 index 00000000..521cd7cc --- /dev/null +++ b/windows/templates/tcpserver/tcpserver_c.txt @@ -0,0 +1,77 @@ +#include +#include +#include +#include + +#define PORT 8888 +#define BUFFER_SIZE 4196 + +const char* kExitFlag = "exit"; + +int main() { + WORD winsock_version = MAKEWORD(2,2); + WSADATA wsa_data; + if (WSAStartup(winsock_version, &wsa_data) != 0) { + printf("Failed to init socket dll!\n"); + return 1; + } + + SOCKET server_socket= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (server_socket == INVALID_SOCKET) { + printf("Failed to create server socket!\n"); + return 2; + } + + struct sockaddr_in server_addr; + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(PORT); + server_addr.sin_addr.S_un.S_addr = INADDR_ANY; + + if (bind(server_socket, (LPSOCKADDR)&server_addr, sizeof(server_addr)) == SOCKET_ERROR) { + printf("Failed to bind port!\n"); + return 3; + } + + if (listen(server_socket, 10)) { + printf("Failed to listen!\n"); + return 4; + } + + struct sockaddr_in client_addr; + int client_addr_len = sizeof(client_addr); + printf("Wait for connecting...\n"); + + SOCKET client_socket = accept(server_socket, (SOCKADDR*)&client_addr, &client_addr_len); + if (client_socket == INVALID_SOCKET) { + printf("Failed to accept!\n"); + return 5; + } + + printf("Succeed to receive a connection: %s\n" , inet_ntoa(client_addr.sin_addr)); + + char recv_buf[BUFFER_SIZE+1]; + while (true) { + int ret = recv(client_socket, recv_buf, BUFFER_SIZE, 0); + if (ret < 0) { + printf("Failed to receive data!\n"); + break; + } + recv_buf[ret]=0; // correctly ends received string + + printf("Receive from Client: \"%s\" \n", recv_buf); + if (strcmp(kExitFlag,recv_buf)==0) { + printf("Exit!\n"); + break; + } + + const char* send_data = "Hello, Tcp Client!"; + send(client_socket, send_data, strlen(send_data), 0); + } + + closesocket(client_socket); + closesocket(server_socket); + + WSACleanup(); + + return 0; +} \ No newline at end of file diff --git a/windows/templates/tinyfiledialogs/tinyfiledialogs.ico b/windows/templates/tinyfiledialogs/tinyfiledialogs.ico new file mode 100644 index 0000000000000000000000000000000000000000..94551655313deeeb2ef369973a2f74d8b3dda9d1 GIT binary patch literal 766 zcmdr}xeb6Y3_K76P*JC347Q3p(uJ`y0D~|BojC&qmXIirC^+Z*o$@FKDq09FeS@V2 zIsiQx$bq!JAyK{aqbBM6!@M ZpKbASl=%T~$LGJ>S8vb0+wX5s-2ja_Vk`gv literal 0 HcmV?d00001 diff --git a/windows/templates/tinyfiledialogs/tinyfiledialogs.template b/windows/templates/tinyfiledialogs/tinyfiledialogs.template new file mode 100644 index 00000000..d2ac3db4 --- /dev/null +++ b/windows/templates/tinyfiledialogs/tinyfiledialogs.template @@ -0,0 +1,19 @@ +[Template] +ver=2 +Name=TinyFileDialogs +Name[zh_CN]=TinyFileDialogs +Icon=tinyfiledialogs.ico +Description=Demo app for tinyfiledialogs +Description[zh_CN]=tinyfiledialogs示例程序 +Category=UI +Category[zh_CN]=UI + +[Unit0] +CName=main.c +C=tinyfiledialogs_c.txt + +[Project] +UnitCount=1 +Type=1 +IsCpp=0 +linker=-ltinyfiledialogs -lcomdlg32 -lole32 diff --git a/windows/templates/tinyfiledialogs/tinyfiledialogs_c.txt b/windows/templates/tinyfiledialogs/tinyfiledialogs_c.txt new file mode 100644 index 00000000..6e35afdf --- /dev/null +++ b/windows/templates/tinyfiledialogs/tinyfiledialogs_c.txt @@ -0,0 +1,235 @@ +/*_________ + / \ hello.c v3.8.8 [Apr 22, 2021] zlib licence + |tiny file| Hello World file created [November 9, 2014] + | dialogs | Copyright (c) 2014 - 2021 Guillaume Vareille http://ysengrin.com + \____ ___/ http://tinyfiledialogs.sourceforge.net + \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd + ____________________________________________ + | | + | email: tinyfiledialogs at ysengrin.com | + |____________________________________________| + _________________________________________________________________________________ + | | + | the windows only wchar_t UTF-16 prototypes are at the bottom of the header file | + |_________________________________________________________________________________| + _________________________________________________________ + | | + | on windows: - since v3.6 char is UTF-8 by default | + | - if you want MBCS set tinyfd_winUtf8 to 0 | + | - functions like fopen expect MBCS | + |_________________________________________________________| + + If you like tinyfiledialogs, please upvote my stackoverflow answer + https://stackoverflow.com/a/47651444 + + - License - + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + */ + + +/* + - Here is the Hello World: + if a console is missing, it will use graphic dialogs + if a graphical display is absent, it will use console dialogs + (on windows the input box may take some time to open the first time) + */ + + +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(disable:4996) /* silences warnings about strcpy strcat fopen*/ +#endif + +int main( int argc , char * argv[] ) +{ + int lIntValue; + char const * lPassword; + char const * lTheSaveFileName; + char const * lTheOpenFileName; + char const * lTheSelectFolderName; + char const * lTheHexColor; + char const * lWillBeGraphicMode; + unsigned char lRgbColor[3]; + FILE * lIn; + char lBuffer[1024]; + char const * lFilterPatterns[2] = { "*.txt", "*.text" }; + + (void)argv; /*to silence stupid visual studio warning*/ + + tinyfd_verbose = argc - 1; /* default is 0 */ + tinyfd_silent = 1; /* default is 1 */ + + tinyfd_forceConsole = 0; /* default is 0 */ + tinyfd_assumeGraphicDisplay = 0; /* default is 0 */ + + /*tinyfd_beep();*/ + + lWillBeGraphicMode = tinyfd_inputBox("tinyfd_query", NULL, NULL); + + strcpy(lBuffer, "tinyfiledialogs\nv"); + strcat(lBuffer, tinyfd_version); + if (lWillBeGraphicMode) + { + strcat(lBuffer, "\ngraphic mode: "); + } + else + { + strcat(lBuffer, "\nconsole mode: "); + } + strcat(lBuffer, tinyfd_response); + tinyfd_messageBox("hello", lBuffer, "ok", "info", 0); + + tinyfd_notifyPopup("the title", "the message\n\tfrom outer-space", "info"); + + if ( lWillBeGraphicMode && ! tinyfd_forceConsole ) + { + lIntValue = tinyfd_messageBox("Hello World", "graphic dialogs [Yes] / console mode [No]", "yesno", "question", 1); + tinyfd_forceConsole = ! lIntValue; + } + + lPassword = tinyfd_inputBox( + "a text input box", "your content will be save and loaded", ""); + + if (!lPassword) return 1; + + tinyfd_messageBox("your content as read", lPassword, "ok", "info", 1); + + lTheSaveFileName = tinyfd_saveFileDialog( + "let us save this content", + "passwordFile.txt", + 2, + lFilterPatterns, + NULL); + + if (! lTheSaveFileName) + { + tinyfd_messageBox( + "Error", + "Save file name is NULL", + "ok", + "error", + 1); + return 1 ; + } + +#ifdef _WIN32 + if (tinyfd_winUtf8) + lIn = _wfopen(tinyfd_utf8to16(lTheSaveFileName), L"w"); /* the UTF-8 filename is converted to UTF-16 to open the file*/ + else +#endif + lIn = fopen(lTheSaveFileName, "w"); + + if (!lIn) + { + tinyfd_messageBox( + "Error", + "Can not open this file in write mode", + "ok", + "error", + 1); + return 1 ; + } + fputs(lPassword, lIn); + fclose(lIn); + + lTheOpenFileName = tinyfd_openFileDialog( + "let us read the content back", + "", + 2, + lFilterPatterns, + NULL, + 0); + + if (! lTheOpenFileName) + { + tinyfd_messageBox( + "Error", + "Open file name is NULL", + "ok", + "error", + 0); + return 1 ; + } + +#ifdef _WIN32 + if (tinyfd_winUtf8) + lIn = _wfopen(tinyfd_utf8to16(lTheOpenFileName), L"r"); /* the UTF-8 filename is converted to UTF-16 */ + else +#endif + lIn = fopen(lTheOpenFileName, "r"); + + if (!lIn) + { + tinyfd_messageBox( + "Error", + "Can not open this file in read mode", + "ok", + "error", + 1); + return(1); + } + + lBuffer[0] = '\0'; + fgets(lBuffer, sizeof(lBuffer), lIn); + fclose(lIn); + + tinyfd_messageBox("yourcontent as it was saved", lBuffer, "ok", "info", 1); + + lTheSelectFolderName = tinyfd_selectFolderDialog( + "let us just select a directory", NULL); + + if (!lTheSelectFolderName) + { + tinyfd_messageBox( + "Error", + "Select folder name is NULL", + "ok", + "error", + 1); + return 1; + } + + tinyfd_messageBox("The selected folder is", lTheSelectFolderName, "ok", "info", 1); + + lTheHexColor = tinyfd_colorChooser( + "choose a nice color", + "#FF0077", + lRgbColor, + lRgbColor); + + if (!lTheHexColor) + { + tinyfd_messageBox( + "Error", + "hexcolor is NULL", + "ok", + "error", + 1); + return 1; + } + + tinyfd_messageBox("The selected hexcolor is", lTheHexColor, "ok", "info", 1); + + tinyfd_messageBox("your read content was", lPassword, "ok", "info", 1); + + tinyfd_beep(); + + return 0; +}