Skip to content

Instantly share code, notes, and snippets.

Eric Freed ForeverZer0

Block or report user

Report or block ForeverZer0

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View jetbrains-reset.rb
#!/usr/bin/env ruby
require 'tty-prompt'
require 'fileutils'
@prompt = TTY::Prompt.new
def find_product(name)
paths = []
Dir.entries(Dir.home).each do |entry|
@ForeverZer0
ForeverZer0 / hue-shift.frag
Created Mar 1, 2020
Simple and efficient hue-shift function for a GLSL fragment shader.
View hue-shift.frag
/**
* @brief Applies a hue-shift in a GLSL fragment shader.
*
* @param color The color of the fragment to shift.
* @param hue The amount of hue-shift to apply, in radians. Use GLSL radians function to convert from degrees if needed.
*
* @return The hue-shifted fragment color.
*/
vec3 hueShift(vec3 color, float hue) {
const vec3 k = vec3(0.57735, 0.57735, 0.57735);
@ForeverZer0
ForeverZer0 / main.c
Created Feb 25, 2020
Prime number generator
View main.c
#include <stdio.h>
#include <getopt.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>
static struct option prime_opts[] =
{
{"count", required_argument, NULL, 'c'},
@ForeverZer0
ForeverZer0 / exportsym.rb
Created Feb 17, 2020
Export formatted list of symbols defined in a C/C++ library
View exportsym.rb
#!/usr/bin/env ruby
#==============================================================================
#
# Searches for a library either local or on the system and prints out a sorted
# list of all exported symbols found within it. (UNIX-like systems only)
#
# Useful for creating a wrapper/bindings for a C/C++ library.
#
# Example: exportsym tar
@ForeverZer0
ForeverZer0 / ConvertFileToResource.md
Created Feb 17, 2020
Converts any file to C char array to embed as resource.
View ConvertFileToResource.md

Convert any file to formatted string of hex characters

#!/usr/bin/bash
hexdump -v -e '16/1 "_x%02X" "\n"' $1 | sed 's/_/\\/g; s/\\x  //g; s/.*/    "&"/'

The output can then be copied and assigned to a const char * in a header/source file and referenced as a normal string.

@ForeverZer0
ForeverZer0 / RemoveGitSubModule.md
Last active Feb 18, 2020
Completely remove/delete git submodule from project
View RemoveGitSubModule.md

Completely Remove Git Sub-Module

Two different methods to automate the process of removing a submodule from a git repo with a single command. Adapted from here.

NOTE: A commit is made during removal, so it is best to commit any other changes prior to executing the command.

Using as a script in your PATH (filename will be name of command)

  • Create a new file anywhere in your shell's search paths (i.e. ~/.local/bin)
  • Copy the following
@ForeverZer0
ForeverZer0 / hex2char.sh
Created Jan 30, 2020
Convert a binary file into a string that can be stored in a C file as an embedded resource.
View hex2char.sh
#!/usr/bin/bash
hexdump -v -e '16/1 "_x%02X" "\n"' $1 | sed 's/_/\\/g; s/\\x //g; s/.*/ "&"/'
@ForeverZer0
ForeverZer0 / OpenAL.cs
Last active Jan 26, 2020
Minimal bindings for OpenAL
View OpenAL.cs
using System;
using System.Diagnostics.CodeAnalysis;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Security;
namespace MyNamespace
{
[SuppressUnmanagedCodeSecurity]
[SuppressMessage("ReSharper", "IdentifierTypo")]
@ForeverZer0
ForeverZer0 / libsndfile.cs
Created Jan 25, 2020
Minimal bindings for the libsndfile library.
View libsndfile.cs
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
namespace SndFile
{
[SuppressUnmanagedCodeSecurity]
@ForeverZer0
ForeverZer0 / libogg.cs
Created Jan 25, 2020
Minimal bindings of the libogg reference library.
View libogg.cs
using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using System.Security;
// Referernce Source: https://xiph.org/vorbis/doc/libvorbis/reference.html
namespace OGG
{
[SuppressUnmanagedCodeSecurity]
You can’t perform that action at this time.