http://udn.epicgames.com [ http://udn.epicgames.com/Main/WebHome.html ]
Forward Declaration: Use a class’s pointer/reference without defining it (without including the header defining the class)
Forward declarations seem to work only with pointers. Chris has seen them work with references too, but can’t seem to figure how at the moment. They don’t seem to work with nested types like ObjectManager::EffectDesc.
http://www.codeguru.com/forum/showthread.php?t=231040 When/Why to use – const type & See Also: C++ for game programmers Noel Llopis
Visual Studio 2005
Memory Breakpoints aka Data Breakpoints:
Open the Breakpoints window (alt+F9)
click the "New" pulldown – its got "Break at function…" and "New Data Breakpoint…"
Ths is enabled while the program is being debugged
Visual C++ Tips http://www.highprogrammer.com/alan/windev/visualstudio.html
[Use the Microsoft Symbol Server to obtain debug symbol files]
[From my Symbols.txt]
http://www.gamedev.net/reference/programming/features/debugging/default.asp Richard "Superpig" Fine
Pointer Codes http://www.codeguru.com/cpp/w-p/win32/tutorials/article.php/c9535/
Visual Studio 2005
Exceptions – Debug > Exceptions (Ctrl + Alt + E); (Break when) Win32 Exceptions > Access Violation C0000005 (etc)
Loading Symbols Manually. Module Window > Right click to Load Symbols while debugging.
Catching Floating point exceptions
_clearfp(); // always call _clearfp before enabling/unmasking a FPU exception
_controlfp( _EM_ZERODIVIDE, _MCW_EM );
Visual Studio Solution file "unrecognized version" : check if it has LF line endings
Visual Studio Project > Linker Settings > Command line: /VERBOSE[:ICF |:LIB |:REF |:SAFESEH]
also, when having issues with DLLs remember the Depedency walker.
mt -manifest Project1.dll.embed.manifest -outputresource:Project1.dll;2 (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3018285&SiteID=1)
Windows batch tutorial
Windows Script to match text http://www.computing.net/programming/wwwboard/forum/12413.html
http://www.gamasutra.com/features/20030418/engel_02.shtml lighthing models with hlsl
http://www.icare3d.org/content/view/50/9/ OpenGL Geometry Shader Marching Cubes
dynamic imposter [ http://www.gamasutra.com/features/20060105/davis_02.shtml ] I did something cool based on this with DW
Why can’t I initialize my static member data in my constructor’s initialization list?
‘natural’ order (scale, rotate, translate)
http://tulrich.com/geekstuff/ Link from the Chunk LOD paper, link has stuff on WinDBG too.
A bit about skinning
Animation Blending: Achieving Inverse Kinematics and More
D3DXSaveSurfaceToFile( L"bb.dds", D3DXIFF_DDS, bbSurface, NULL, NULL );
When using the Debug D3D driver
CreationCallStack=0x048ef100 "To enable creation call stacks set \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\D3D9Debugging\EnableCreationStack = 1"
Photoshop: To create an alpha channel.
Ctrl + click the thumbnail of a layer to select it, enable/create an
alpha channel (Layers/Channels/Paths tabs). Use a brush to fill in
selection with white/black/…
GIMP (For those artists who keep asking: Its so much lighter than Photoshop [as a programmer I don’t need the stuff that comes with PS], and gets so much more done than paint.) Ctrl+L Layers, Pg Up/Down for Prev/Next Layer, P – Pen Tool, Shift to make straight lines, Z to Zoom in (Ctrl for out), Shift+C to Crop, T for Text, Layer > Transparency > Add alpha Channel.
3Ds Max Tip:
More Frame rate for animations (slow mo etc)
Motion Tab > Biped > Mixer Mode on
Biped apps > Mixer > delete everything > add new transition?? > strectch > collapse > save as bip
open file again: Motion Tab > Motion capture > Load MC file (from above) > Play!
3Ds Max TIP Right click frame slider to copy a key.. (set key + … )
3Ds Max TIP (Biped) Motion tab > Biped > (Move all mode) (move the entire biped say from somewhere back to origin to be able to export properly in Vicious)
3Ds Max TIP: Pivot Point is in the hierarchy tab
3Ds MAX tip UVW Map, selects its gizmo and then translate/scale/rotate and ‘collapse to’ to save the coordinates.
3Ds MAX Tip: To adjust the texture
(Modifier List>Object Space Modifiers>) Unwrap UVW > (Parameters) Edit
3D Studio Max "Moving a biped down"
– Select Biped
– Motion Tab > gow down to "Layers"
– Create a new Layer
– Auto key (or set key from the near the "Layers", Motion panel)
– move biped to wherever the **** you want it.
– auto key off
– Collapse the layer [Motion Tab > gow down to "Layers"]
3Ds Max "In place animation"
+ Modes and Display
3Ds Max – "To Make segments"
Convert to Editable Poly (If Editable Poly > Editable Mesh, trash the top/parent modifier and convert[right click]) and then choose connect (edges)
3ds Max (Script) To affect rotation of pivot, set <node>.objectoffsetrot
MAXScript Language Reference > 3ds Max Objects > Node: MAXWrapper > Node Common Properties > Node Transform Properties
FPS Tips (should show this to everyone so that the competition gets better) http://www.bosskey.net/basics/tips.html
DXops; my Skill ++
Matrix Composition… B.A is READ AS "A followed by B"
Transforming Normals http://www.unknownroad.com/rtfm/graphics/rt_normals.html
To build PhysX samples (2.7.2) on linux:
Define; LINUX NX_DISABLE_FLUIDS
Link: glut GL GLU PhysXLoader dl
create link to /usr/lib/PhysX/v2.7.2/libnxcharacter.so in /usr/lib
To load PhysX 2.7.2 Debug DLLs/Symbols
set HKLM\Software\AGEIA Technologies\enableLocalPhysXCore (REG_BINARY) 00 1b fc73 b8 ce (your MAC address)
(User) PATH=%PATH%;C:\Program Files\AGEIA Technologies\SDK\v2.7.2\Bin\win32
PhysXCorePath C:\Program Files\AGEIA Technologies\SDK\v2.7.2\Bin\win32
When compiling goes fine but running goes weird:
Check for your defines!
// Projects With the Debug_Physx configuration have PHYSX_ENABLE defined for them.
// Description of problem:
// bwcl*nt, camera, ch*nk, du*lo, m*o, physics2, physx, r*mp, s*o
// included physx.hpp in their pch. physx.hpp defnied PHYSX_ENABLE
// all other projects that included any header from those projects
// ended up including declarations without the PHYSX_ENABLE macro.
// The end result: watching values seem to show ‘shifts’ in classes.
// like a matrix seemed correct except for one value at the begining
// as if it was shifted in memory by one float.
Open Office dot org
if you don’t want an automatic gap between paragraphs/numerings try
"Format" > "Paragraph" > "Indents & Spacing" > Spacing Below Paragraph > CHANGE to 0.00" (from the default 0.14")
"Format" > "AutoFormat" > UNCHECK "While Typing" (disable automatic indentation of numberings)
Newline to Spaces (and the other way around)
Notepad++ Edit > Join Lines (Ctrl+J) (and Split Lines (Ctrl+I) )
TextFX > TextFX Edit > Split Lines at (clipboard character) or , (C) [(VB)]
Notepad2 Edit > Block > Join Lines (Ctrl+J) (and Split Lines (Ctrl+I) ) (Join doesn’t work)
Other useful stuff in Notepad++ : regular expressions, find in files (yeah yeah, Visual Studio supports this stuff too…). Check the TextFX menu for more.
Perforce UI TIP discovered(sort of forced to use it on a project): Edit > Find file matching pattern Ctrl+F (filter)
press F3 (find next)
(I do not wish to have to use Perforce in future. Especially not have to merge between svn, mercurial and perforce all on one project!)
setting up Apache/Python/wsgi/Trac/svn/hg/mediawiki/wordpress
setting up SSH+RDP