Skip to content

Instantly share code, notes, and snippets.

@jdbener
jdbener / ECS.hpp
Last active June 1, 2024 18:57
A very lightweight C++ ECS implementation based on skiplists.
// This is free and unencumbered software released into the public domain.
// Anyone is free to copy, modify, publish, use, compile, sell, or
// distribute this software, either in source code form or as a compiled
// binary, for any purpose, commercial or non-commercial, and by any
// means.
// In jurisdictions that recognize copyright laws, the author or authors
// of this software dedicate any and all copyright interest in the
// software to the public domain. We make this dedication for the benefit
@jdbener
jdbener / gc.hpp
Last active July 29, 2022 06:23
A simple mark-and-sweap smart pointer
#include <array>
#include <deque>
#include <cstring>
#include <algorithm>
#include <memory>
namespace gc {
namespace default_ { struct tag {}; }
template<typename Tag = default_::tag>
@jdbener
jdbener / utilization.h
Last active April 28, 2022 17:57
Files that calculates how much of the system resources are being utilized.
/*
Class that provides several functions for finding memory and cpu statistics about the current system
File: utilization.h
Author: https://stackoverflow.com/questions/63166/how-to-determine-cpu-and-memory-consumption-from-inside-a-process
Modifications: Joshua "Jdbener" Dahl
*/
#ifndef __RESOURCE_UTILIZATION_HPP__
#define __RESOURCE_UTILIZATION_HPP__
@jdbener
jdbener / compile.py
Created May 17, 2020 00:35
A script which can build a GDNative project and the associated Godot library bindings simultaneously.
#!/usr/bin/python
# A script which can build a GDNative project and the associated Godot library bindings simultaneously.
# Usage: python compile.py platform=[your platform here] bits=64 [bindings=false]
import sys, os, subprocess
bits = 64
platform = ""
# Sets the number of jobs to the number of processors
jobs = len(os.sched_getaffinity(0))
bindings = True
yay -Syu --needed freeglut glew lib32-alsa-lib lib32-alsa-plugins lib32-glu lib32-icu lib32-libdrm lib32-libelf lib32-libglvnd lib32-libice lib32-libpciaccess lib32-libsm lib32-libxdamage lib32-libxi lib32-libxml2 lib32-libxshmfence lib32-libxxf86vm lib32-llvm-libs lib32-lm_sensors lib32-mesa lib32-ncurses lib32-readline lib32-wayland mesa-demos zenity cabextract gnu-netcat icoutils lib32-acl lib32-fontconfig lib32-freetype2 lib32-gettext lib32-harfbuzz lib32-lcms2 lib32-libjpeg-turbo lib32-libnl lib32-libpcap lib32-libpng lib32-libtiff lib32-libusb lib32-libxcursor lib32-libxrandr lib32-libxrender lib32-libxss libutempter p7zip wxgtk-common wxgtk2 wxpython xbitmaps xorg-luit xorg-xmessage xterm samba lib32-libudev0-shim lib32-libgudev lib32-libpulse lib32-libldap lib32-libxml2 lib32-libpng lib32-giflib lib32-gnutls lib32-mpg123 vulkan-icd-loader lib32-vulkan-icd-loader lib32-libldap wine lutris
@jdbener
jdbener / Gstream.hpp
Last active July 16, 2021 17:10
Cout like wostream which target's Godot's console
/*
This file implements an output stream linked to Godot's console.
Author: Joshua "Jdbener" Dahl
Usage:
godot::print << "A simple message" << godot::endl; // All of the manipulators in iomanip should work propperly.
godot::print.warn("Warning message with all of the file/line number information automatically included");
godot::print.error("Error message with all of the file/line number information automatcially included");
NOTE: Messages are synced to Godot when a '\n' or an std::endl is encountered.
@jdbener
jdbener / Timer.h
Last active August 8, 2021 22:41
C++ Timer
/*
Class which implements a simple timer. This timer will display the execution
time of a block of code when requested or when it goes out of scope.
File: Timer.h
Author: The Cherno
Modifications: Joshua "Jdbener" Dahl
*/
#ifndef _TIMER_H_
#define _TIMER_H_
@jdbener
jdbener / PKGBUILD
Created June 20, 2019 02:16
Houdini 17.5 Package Builld
# Maintainer: Ashley Whetter <(firstname) at awhetter couk>
# Note: You will need to start the sesinetd service before running houdini
# Note: You may want to add /opt/houdini/bin to your PATH
pkgname=('houdini' 'houdini-maya-engine' 'houdini-unity-engine' 'python2-hqueue')
pkgbase=houdini
_pkgver_major=17
_pkgver_minor=5
_pkgver_build=258

Notepad++ Installation on Windows

Before anything else! Go to http://faculty.tmcc.edu/ecorbett/CS135_install/, download MinGW, and follow Ed's instructions on how to install it!

  1. First, go to https://notepad-plus-plus.org/download/ and click the green DOWNLOAD button. Download Page

  2. Run the downloaded executable and click next/accept through the entire install process. All of the defaults will be fine.

  3. At the top of the program click on Plugins, then Plugin Admin. This window should pop up: Plugin Admin

  4. Search for nppexec, check the box next to it, and click install. The program should ask if you would like to restart, click yes. Once it is back up in the plugins menu there should now be an entry for nppexec.

autocomplete-clang autocomplete-cmake autocomplete-glsl autocomplete-python autocomplete-xml build build-make build-scons busy-signal file-icons highlight-selected intentions lang-gdscript language-cmake language-cpp14 language-glsl language-ini language-meson linter linter-clang linter-glsl linter-ui-default minimap minimap-cursorline minimap-highlight-selected minimap-linter minimap-selection todo-show visual-studio-dark-syntax firacode