Difference between revisions of "User:Mdafidchao"
Mdafidchao (talk | contribs) |
Mdafidchao (talk | contribs) |
||
Line 1: | Line 1: | ||
I'm Michael Afidchao, and this is my favorite page on the Citadel...no, not really. | I'm Michael Afidchao, and this is my favorite page on the Citadel...no, not really. | ||
− | |||
My e-mail: [mailto:mdafidchao@learn.senecac.on.ca mdafidchao@learn.senecac.on.ca] | My e-mail: [mailto:mdafidchao@learn.senecac.on.ca mdafidchao@learn.senecac.on.ca] | ||
Line 9: | Line 8: | ||
IRC nick: mdafidchao, KyperTrast | IRC nick: mdafidchao, KyperTrast | ||
+ | |||
+ | =GAM666 test review stuff= | ||
+ | * Windows Programming | ||
+ | ** Windows Functions ([http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559%28v=vs.85%29.aspx WinMain], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms646291%28v=vs.85%29.aspx EnableWindow], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms632667%28v=vs.85%29.aspx AdjustWindowRectEx], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms645515%28v=vs.85%29.aspx SendDlgItemMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms645481%28v=vs.85%29.aspx GetDlgItem], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms633586%28v=vs.85%29.aspx RegisterClass], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms645452%28v=vs.85%29.aspx DialogBox] (macro), [http://msdn.microsoft.com/en-us/library/windows/desktop/ms632682%28v=vs.85%29.aspx DestroyWindow], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx CreateWindow], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx ShowWindow], [http://msdn.microsoft.com/en-us/library/windows/desktop/dd145167%28v=vs.85%29.aspx UpdateWindow], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644943%28v=vs.85%29.aspx PeekMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644955%28v=vs.85%29.aspx TranslateMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644944%28v=vs.85%29.aspx PostMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644934%28v=vs.85%29.aspx DispatchMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms648393%28v=vs.85%29.aspx Setcursor], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644945%28v=vs.85%29.aspx PostQuitMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms633572%28v=vs.85%29.aspx DefWindowProc], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms644956%28v=vs.85%29.aspx WaitMessage], [http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505%28v=vs.85%29.aspx MessageBox]) | ||
+ | ** [http://msdn.microsoft.com/en-us/library/windows/desktop/ms633570%28v=vs.85%29.aspx Window Procedures]or Scroll UP on this [https://scs.senecac.on.ca/~gam666/pages/content/displ.html#dis page] | ||
+ | * [https://scs.senecac.on.ca/~gam666/pages/content/direc.html#com COM Technology] | ||
+ | * [https://scs.senecac.on.ca/~gam666/pages/content/direc.html#dir Direct3D] | ||
+ | ** Direct3D COM Object | ||
+ | ** Direct3D Display Device COM Object | ||
+ | ** Direct3D Texture COM Object | ||
+ | * Game Programming Aspects | ||
+ | ** Singletons and Interfaces | ||
+ | ** Event Iteration, Messages, and Timing | ||
+ | ** Re-Configuration, Loss and Restoration of Focus | ||
+ | ** Design, Coordination, Graphic Representation | ||
+ | ** Colour and Backbuffering | ||
+ | ** Action-Key Mapping | ||
+ | |||
+ | Sample test question: | ||
+ | d3d->CreateDevice( ) //returns &d3dd | ||
+ | sprite->D3DCreateSprite() //returns &sprite | ||
+ | //com Direct3D object | ||
+ | d3dd -> Clear () | ||
+ | // { single frame | ||
+ | d3dd -> BeginScene() | ||
+ | //[ drawing graphic | ||
+ | sprite->Begin() | ||
+ | sprite->Drew | ||
+ | sprite->End | ||
+ | // ] | ||
+ | d3dd ->EndScene() | ||
+ | //} | ||
+ | d3dd -> Present() | ||
+ | |||
+ | ==Windows Programming== | ||
+ | * entry point: instead of a main function, WinMain() is used | ||
+ | * int WINAPI WinMain (HINSTANCE hinst, HINST hprev, LPSTR cp, int show) | ||
+ | ** hinst - handle to the window, a pointer that indirectly points to an instance to disallow direct changes | ||
+ | ** hprev - handle to the previous instance of the application (usually nullptr) | ||
+ | ** cp - C-style null-terminated string from the command line, | ||
+ | ** show - integer that identifies how to initially display the window | ||
+ | * windows procedure: processes the message queue created from the OS | ||
+ | * BOOL CALLBACK identifierName(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) | ||
+ | ** hwnd - handle to the window for which the incoming message was targeted | ||
+ | ** msg - integer that identifies the message itself | ||
+ | ** wp - optionally holds a value associated with message, usually an integer | ||
+ | ** lp - holds a value associated with message, usually an address | ||
+ | * DialogBox(): a Windows function-like macro that creates a modal dialog box from a template resource | ||
+ | * DialogBox((HINSTANCE)hinst, MAKEINTRESOURCE(IDD_DLG), nullptr, procedureToReceieveMessages) | ||
+ | ** modal - execution pauses until user completes some action | ||
+ | ** does not return control until EndDialog() has destroyed the dialog box | ||
+ | * types of messages to process within switch(msg): WM_INITDIALOG, WM_COMMAND, IDCANCEL | ||
+ | ** WM_INITDIALOG - initialize immediately before displaying dialog box | ||
+ | ** WM_COMMAND - response to any activity within dialog box, check the LOWORD of wp: switch (LOWORD(wp)) | ||
+ | *** IDOK - continue button | ||
+ | *** IDCANCEL - cancel button | ||
+ | * Resource Description: dialog box uses a resource, defined in a resource definition script | ||
+ | ** resources are defined with ID numbers, dialog controls are usually prefixed with IDC_ and starts at 100/101 | ||
+ | * ensure you use the L prefix for Unicode (2 bytes per character): L"Text" | ||
+ | |||
+ | |||
+ | |||
+ | ===Key Windows Functions=== | ||
+ | * MessageBox(HWND hwnd, LPCTSTR lpText, LPCTSTR lpCation, UINT uType): pops up a modal dialog box | ||
+ | * SendDlgItemMessage (HWND hwnd, int nIDDlgItem, UINT Msg, WPARAM wp, LPARAM lp): sends message msg to control nIDDlgItem in dialog box hwnd | ||
+ | ** For comboboxes: wp holds the index of the line item in nIDDlgItem's list | ||
+ | ** lp holds the address of the string associated with that line item | ||
+ | ** combo box CB_ definitions: | ||
+ | *** CB_RESETCONTENT - send a message to the combo box to remove all items from its list | ||
+ | *** CB_ADDSTRING - add a line item to its list | ||
+ | *** CB_SETCURSEL - select the line item from the list associated with the index specified in wp | ||
+ | *** CB_GETCURSEL - get index of selected item | ||
+ | *** CB_GETLBTEXT - get description of selected resolution, wp specifies the index, lp specifies the string to be filled | ||
+ | *** CBN_SETFOCUS - checks whether the combo box has keyboard focus, from the wp ex. HIWORD(wp) == CBN_SETFOCUS | ||
+ | *** CBN_SELCHANGE - checks whether the user has clicked in the combo box list or changed the selection w/arrow keys | ||
+ | *** CB_ERR - this is returned after any sent dialog message to a combo box | ||
+ | ** GetDlgItem (HWND hwnd, int nID): retrieves a handle to control nID in dialog box hwnd | ||
+ | ** EnableWindow (HWND hwnd, BOOL enable): enables/disables the control at handle hwnd | ||
+ | *** use in combination w/GetDlgItem, ex. EnableWindow(GetDlgItem(hwnd, IDC_GO), TRUE) | ||
+ | |||
+ | ===Key Resource Definitions=== | ||
+ | * LTEXT - creates text control | ||
+ | * PUSHBUTTON - creates a push button control | ||
+ | * COMBOBOX | ||
+ | * DEFPUSHBUTTON - default push button | ||
+ | |||
+ | ===Defines/Typedefs=== | ||
+ | These are the key definitions: | ||
+ | * #define WINAPI __stdcall //__stdcall informs the compiler that the function, not the caller, will clean the stack after execution | ||
+ | * #define WIN32_LEAN_AND_MEAN //remove unnecessary API components for game programming | ||
+ | * typedef HANDLE HINSTANCE; | ||
+ | * typedef PVOID HANDLE; | ||
+ | * typedef void* PVOID; | ||
+ | * typedef CHAR* LPSTR; | ||
+ | * typedef char CHAR; | ||
+ | * typedef int BOOL; | ||
+ | * #define CALLBACK __stdcall | ||
+ | * typedef HANDLE HWND; | ||
+ | * typedef unsigned int UINT; | ||
+ | * typedef UINT_PTR WPARAM; //word parameter | ||
+ | * typedef unsigned int UINT_PTR; | ||
+ | * typedef LONG_PTR LPARAM; //long parameter | ||
+ | * typedef long LONG_PTR; |
Revision as of 14:08, 8 October 2012
I'm Michael Afidchao, and this is my favorite page on the Citadel...no, not really.
My e-mail: mdafidchao@learn.senecac.on.ca
Blog: http://kypertrast.net/seneca
Github repository: https://github.com/mafidchao
IRC nick: mdafidchao, KyperTrast
Contents
GAM666 test review stuff
- Windows Programming
- Windows Functions (WinMain, EnableWindow, AdjustWindowRectEx, SendDlgItemMessage, GetDlgItem, RegisterClass, DialogBox (macro), DestroyWindow, CreateWindow, ShowWindow, UpdateWindow, PeekMessage, TranslateMessage, PostMessage, DispatchMessage, Setcursor, PostQuitMessage, DefWindowProc, WaitMessage, MessageBox)
- Window Proceduresor Scroll UP on this page
- COM Technology
- Direct3D
- Direct3D COM Object
- Direct3D Display Device COM Object
- Direct3D Texture COM Object
- Game Programming Aspects
- Singletons and Interfaces
- Event Iteration, Messages, and Timing
- Re-Configuration, Loss and Restoration of Focus
- Design, Coordination, Graphic Representation
- Colour and Backbuffering
- Action-Key Mapping
Sample test question:
d3d->CreateDevice( ) //returns &d3dd sprite->D3DCreateSprite() //returns &sprite //com Direct3D object d3dd -> Clear () // { single frame d3dd -> BeginScene() //[ drawing graphic sprite->Begin() sprite->Drew sprite->End // ] d3dd ->EndScene() //} d3dd -> Present()
Windows Programming
- entry point: instead of a main function, WinMain() is used
- int WINAPI WinMain (HINSTANCE hinst, HINST hprev, LPSTR cp, int show)
- hinst - handle to the window, a pointer that indirectly points to an instance to disallow direct changes
- hprev - handle to the previous instance of the application (usually nullptr)
- cp - C-style null-terminated string from the command line,
- show - integer that identifies how to initially display the window
- windows procedure: processes the message queue created from the OS
- BOOL CALLBACK identifierName(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
- hwnd - handle to the window for which the incoming message was targeted
- msg - integer that identifies the message itself
- wp - optionally holds a value associated with message, usually an integer
- lp - holds a value associated with message, usually an address
- DialogBox(): a Windows function-like macro that creates a modal dialog box from a template resource
- DialogBox((HINSTANCE)hinst, MAKEINTRESOURCE(IDD_DLG), nullptr, procedureToReceieveMessages)
- modal - execution pauses until user completes some action
- does not return control until EndDialog() has destroyed the dialog box
- types of messages to process within switch(msg): WM_INITDIALOG, WM_COMMAND, IDCANCEL
- WM_INITDIALOG - initialize immediately before displaying dialog box
- WM_COMMAND - response to any activity within dialog box, check the LOWORD of wp: switch (LOWORD(wp))
- IDOK - continue button
- IDCANCEL - cancel button
- Resource Description: dialog box uses a resource, defined in a resource definition script
- resources are defined with ID numbers, dialog controls are usually prefixed with IDC_ and starts at 100/101
- ensure you use the L prefix for Unicode (2 bytes per character): L"Text"
Key Windows Functions
- MessageBox(HWND hwnd, LPCTSTR lpText, LPCTSTR lpCation, UINT uType): pops up a modal dialog box
- SendDlgItemMessage (HWND hwnd, int nIDDlgItem, UINT Msg, WPARAM wp, LPARAM lp): sends message msg to control nIDDlgItem in dialog box hwnd
- For comboboxes: wp holds the index of the line item in nIDDlgItem's list
- lp holds the address of the string associated with that line item
- combo box CB_ definitions:
- CB_RESETCONTENT - send a message to the combo box to remove all items from its list
- CB_ADDSTRING - add a line item to its list
- CB_SETCURSEL - select the line item from the list associated with the index specified in wp
- CB_GETCURSEL - get index of selected item
- CB_GETLBTEXT - get description of selected resolution, wp specifies the index, lp specifies the string to be filled
- CBN_SETFOCUS - checks whether the combo box has keyboard focus, from the wp ex. HIWORD(wp) == CBN_SETFOCUS
- CBN_SELCHANGE - checks whether the user has clicked in the combo box list or changed the selection w/arrow keys
- CB_ERR - this is returned after any sent dialog message to a combo box
- GetDlgItem (HWND hwnd, int nID): retrieves a handle to control nID in dialog box hwnd
- EnableWindow (HWND hwnd, BOOL enable): enables/disables the control at handle hwnd
- use in combination w/GetDlgItem, ex. EnableWindow(GetDlgItem(hwnd, IDC_GO), TRUE)
Key Resource Definitions
- LTEXT - creates text control
- PUSHBUTTON - creates a push button control
- COMBOBOX
- DEFPUSHBUTTON - default push button
Defines/Typedefs
These are the key definitions:
- #define WINAPI __stdcall //__stdcall informs the compiler that the function, not the caller, will clean the stack after execution
- #define WIN32_LEAN_AND_MEAN //remove unnecessary API components for game programming
- typedef HANDLE HINSTANCE;
- typedef PVOID HANDLE;
- typedef void* PVOID;
- typedef CHAR* LPSTR;
- typedef char CHAR;
- typedef int BOOL;
- #define CALLBACK __stdcall
- typedef HANDLE HWND;
- typedef unsigned int UINT;
- typedef UINT_PTR WPARAM; //word parameter
- typedef unsigned int UINT_PTR;
- typedef LONG_PTR LPARAM; //long parameter
- typedef long LONG_PTR;