Skip to content

Instantly share code, notes, and snippets.

View ssube's full-sized avatar

Sean Sube ssube

View GitHub Profile
@ssube
ssube / gist:1159848
Created August 20, 2011 23:39
LibESD Record interface
/*************************************************************************************************\
*
* @file Record.hpp
* @brief Declares the libESD::Record class.
* @note libESD source code and software (c) Copyright 2011 by Sean Sube, All Rights Reserved.
* Neither the source nor binaries may be modified or distributed without permission.
*
\*************************************************************************************************/
#pragma once
<Material>
<Texture file="vivec.dds" />
<Shader file="normal_map.cgfx">
<Texture sampler="normal_map" file="vivec_n.dds" />
</Shader>
</Material>
uint64_t input = 9;
uint64_t factorial(uint64_t input)
{
uint64_t iter = input;
uint64_t output = input;
while (--iter > 1)
{
output *= iter;
// v1
#define loop(x,op,y) (auto t=x; for(auto c=y;c>1;--c){t=t op;},t)
//v2
#define rdo(x,op,y) ([&](){auto t=x;auto r=y;while(r){t=t op;};return t;})()
//v3
#define rdo(x,op,y) (auto l=[=](){auto t=x;auto r=y;while(r){t=t op;};return t;},l())
//v4
@ssube
ssube / gist:1397175
Created November 27, 2011 07:39
FS quad draw func
struct FSVert
{
float x, y, z, rhw; // The transformed(screen space) position for the vertex.
float tu, tv; // Texture coordinates
};
#define FSVERT_VFV (D3DFVF_XYZRHW | D3DFVF_TEX0)
//IDirect3DVertexDeclaration9 * g_VDecl;
D3DVERTEXELEMENT9 vertDeclElems[] =
{
{ 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
{ 0, 16, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 },
{ 0, 32, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
{ 0, 48, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 },
D3DDECL_END()
};
//-----------------------------------------------
// Hook startup code
//-----------------------------------------------
HMODULE WINAPI LoadSystemLibrary(const LPTSTR libname)
{
TCHAR path[MAX_PATH];
GetSystemDirectory(path, MAX_PATH);
StringCchCat(path, MAX_PATH, TEXT("\\"));
// Install the hooks
IHookManagerRef hooker = m_Core->GetHookManager();
hooker->Add(VOODOO_OGL_HOOK_PARAMS(wglCreateContext));
hooker->Add(VOODOO_OGL_HOOK_PARAMS(wglDeleteContext));
hooker->Add(VOODOO_OGL_HOOK_PARAMS(wglMakeCurrent));
hooker->Add(VOODOO_OGL_HOOK_PARAMS(wglSwapLayerBuffers));
// Now provide the funcs...
uint64_t FlatFactorial(uint64_t input)
{
if (input <= 2) return input;
uint64_t mult = input - 1;
while (mult > 1)
{
input *= mult--;
}
return input;
@ssube
ssube / gist:1431092
Created December 4, 2011 19:39
Changeset combinerer
PackageManifest m_Package;
List<String> m_File_Create, m_File_Remove;
public void CollateChanges(Version v_from, Version v_to)
{
List<Version> versions = new List<Version>(m_Package.Versions);
// Find the first common parent
List<Version> searched = new List<Version>();
Version c_from = v_from, c_to = v_to, c_check = c_from;