Skip to content

Instantly share code, notes, and snippets.

View sortofsleepy's full-sized avatar

Joe sortofsleepy

View GitHub Profile
@sortofsleepy
sortofsleepy / houdini_json_geo_export.py
Created June 13, 2021 17:38
Basic way to export props of a geo node in Houdini into Json.
import json, os
# adapted from here with minor tweaks
# https://github.com/sideeffects/GameDevelopmentToolset/blob/Development/otls/rop_csv_exporter.hda/gamedev_8_8Driver_1rop__csv__exporter/PythonModule#L43
# needs a bit more work to make it better but works well enough for now.
node = hou.pwd()
geo = node.geometry()
filename = "./tester.json"
import * as vscode from 'vscode';
import {existsSync,promises,readFileSync} from "fs"
import {resolve, posix, normalize} from "path"
let getFiles = async(dir) =>{
const dirents = await promises.readdir(dir,{
withFileTypes:true
@sortofsleepy
sortofsleepy / shaderrcsample.cpp
Created June 8, 2020 03:13
sample of how to use shaderc to compile shaders
void Shader::compile(VkDevice * device,const std::string source_name, shaderc_shader_kind kind, const std::string source,
bool optimize) {
shaderc::Compiler compiler;
shaderc::CompileOptions options;
if(optimize){
options.SetOptimizationLevel(shaderc_optimization_level_size);
}
@sortofsleepy
sortofsleepy / example.cpp
Created May 30, 2020 15:07
Example of how to deal with HTML elements and callbacks entirely in Emscripten/C++.
/*
I know I pieced this together largely from another person's idea and their goal of trying to deal with
XMLHTTPRequests. I unfortunately can't find the original source, if you happen to be that person and this looks
familiar, link me to your post(s) and I'll credit you properly
*/
// Somewhere in your .cpp file "EmscriptenCallback" and "Callback" can be whatever you want, it just has to be a unique name
// for the argument to the std::function, that can be whatever you want too but for the purposes of this i think it makes sense to
// leave it as a val since you're expecting an event object back.
@sortofsleepy
sortofsleepy / copyGeo.h
Created May 23, 2020 03:09
Example of how to copy geometry with a VEX node in Houdini.
int numVerts = nvertices(1);
int numPoints = npoints(1);
int numPrim = nprimitives(1);
int ptTally = 0;
// copy all the primitives,vertex data, and indices.
for(int p = 0; p < numPrim; ++p){
int prim = addprim(0,"poly");
CompilerResultsLog: Error: NatureOfCodeGameModeBase.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl FDeferredCleanupInterface::FinishCleanup(void)" (?FinishCleanup@FDeferredCleanupInterface@@UEAAXXZ)
CompilerResultsLog: Error: NatureOfCodeGameModeBase.cpp.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl FShader::Serialize(class FArchive &)" (?Serialize@FShader@@UEAA_NAEAVFArchive@@@Z)
CompilerResultsLog: Error: NatureOfCodeGameModeBase.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class FVertexFactoryParameterRef const * __cdecl FShader::GetVertexFactoryParameterRef(void)const " (?GetVertexFactoryParameterRef@FShader@@UEBAPEBVFVertexFactoryParameterRef@@XZ)
CompilerResultsLog: Error: NatureOfCodeGameModeBase.cpp.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __cdecl FShader::GetAllocatedSize(void)const " (?GetAllocatedSize@FShader@@UEBAIXZ)
CompilerResultsLog: Error: NatureOfCodeGameM
{"keyboard":"walletburner/neuron","keymap":"walletburner_neuron_layout_mine","layout":"LAYOUT","layers":[["KC_ESC","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSPC","KC_TAB","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_ENT","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","MO(1)","KC_LCTL","KC_LGUI","MO(3)","KC_NO","KC_SPC","MO(2)","KC_RALT"],["KC_NO","KC_PGDN","KC_UP","KC_PGUP","KC_NO","KC_NO","KC_NO","KC_NO","KC_LPRN","KC_RPRN","KC_SLSH","KC_BSLS","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO","KC_NO","KC_NO","KC_GRV","KC_SCLN","KC_LCBR","KC_RCBR","KC_LSFT","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_EQL","KC_NO","KC_QUOT","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO"],["KC_NO","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_BSPC","KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_LSFT","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO",
@sortofsleepy
sortofsleepy / .gitignore
Created April 3, 2020 23:37
Common stuff I usually leave out
.DS_Store
node_modules/
vc2015/.vs
vc2015/x64
backup/
@sortofsleepy
sortofsleepy / utils.h
Created February 24, 2020 22:10
useful c++ stuff
//! borrowed from https://github.com/wdlindmeier/Cinder-Metal/blob/master/include/MetalHelpers.hpp
template <typename T, typename U >
const U static inline convert( const T & t )
{
U tmp;
memcpy(&tmp, &t, sizeof(U));
U ret = tmp;
return ret;
}

Building Dawn on Windows

Writing this here cause it was one heck of an adventure to finally get Dawn built on Windows. It's unclear if things are truly built and whether or not there might be more issues to resolve, but for now, by following these instructions, you should be able to at the very least, get Dawn built, set things up properly without any compiler complaints, and with a slight tweak, get the samples up and running.

Note that Google has suggested that the current build system setup is not recommended for producing libraries to be included into your own projects, but there is the desire to include CMake build support for this purpose in the future.

As you might imagine, Dawn is stil being developed so things are bound to be broken. Hopefully things will smooth out as the project reaches it's first major milestone. I am just a casual hobyist so I have no idea as to the current progress but there is a mailing list you can keep up with [here](https://groups.google.com/forum/#!forum/dawn-g