Skip to content

Instantly share code, notes, and snippets.

Avatar

Benjamin Rosseaux BeRo1985

View GitHub Profile
@BeRo1985
BeRo1985 / MIDIEventIntervalSearch.pas
Created Sep 3, 2020
Interval-tree-less interval search on sorted array of linked MIDI events
View MIDIEventIntervalSearch.pas
procedure TEngineMIDIEventList.FindInterval(const aResultList:TEngineMIDIEventDynamicArrayList;const aFromTime,aToTime:TEngineTime);
var Lower,Upper,Mid,Index,StartIndex,MinIndex,MaxIndex,
EventFromIndex,EventToIndex,NextStartIndex,TryIndex:SizeInt;
Event,TemporaryEvent:TEngineMIDIEvent;
FromTime,NextFromTime,EventFromTime,EventToTime,
MinEventTime,MaxEventTime:TEngineTime;
DoAdd:boolean;
begin
if fCount>0 then begin
@BeRo1985
BeRo1985 / BGCMM.pas
Created Apr 8, 2020
A very old experimental garbage collector memory manager project for Delphi and FreePascal
View BGCMM.pas
//////////////////////////////////////////////////////////////////////////////////////
//
// BeRo Garbage Collector Memory Manager - Copyright (C) 2011, Benjamin 'BeRo' Rosseaux
// Warning: CODED IN FEW HOURS ON A SINGLE DAY, SO USE IT ON YOUR OWN RISK!
//
//////////////////////////////////////////////////////////////////////////////////////
// Version: 2011.03.14.0013
//////////////////////////////////////////////////////////////////////////////////////
//
// Description:
@BeRo1985
BeRo1985 / index.html
Created May 15, 2019
JS Bin ecmascript string type wierdness fun // source https://jsbin.com/xinogin
View index.html
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="ecmascript string type wierdness fun">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
@BeRo1985
BeRo1985 / UnitScreenMainMenu.pas
Created Oct 31, 2018
PasVulkan Frame graph API code example
View UnitScreenMainMenu.pas
unit UnitScreenMainMenu;
{$ifdef fpc}
{$mode delphi}
{$ifdef cpu386}
{$asmmode intel}
{$endif}
{$ifdef cpuamd64}
{$asmmode intel}
{$endif}
{$else}
@BeRo1985
BeRo1985 / fragment.glsl
Last active Aug 20, 2018
Attribute-less-rendering-based cube map filitering GLSL shader code template
View fragment.glsl
// Copyright (C) 2018, Benjamin "BeRo" Rosseaux (benjamin@rosseaux.de) - License: CC0
#version 330
layout(location = 0) out vec4 oOutput;
in vec2 vTexCoord;
flat in int vFaceIndex;
vec3 getCubeMapDirection(in vec2 uv,
in int faceIndex){
vec3 zDir = vec3(ivec3((faceIndex <= 1) ? 1 : 0,
(faceIndex & 2) >> 1,
@BeRo1985
BeRo1985 / astronomy.glsl
Last active Jul 31, 2018
GLSL Astronomy compute shader
View astronomy.glsl
// Copyright (C) 2018, Benjamin "BeRo" Rosseaux (benjamin@rosseaux.de) - License: CC0
// Hint: It's not super accurate, but it should be good enough for games and demos with sky rendering.
#version 430
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
uniform vec3 tc; // Time constant
layout(std430) buffer ssboAstronomy {
vec3 sunPosition;
float sunDistance;
@BeRo1985
BeRo1985 / MiniSoftFP32.pas
Last active Jul 30, 2018
MiniSoftFP32 - A simple small software 32-bit single precision floating point implementation
View MiniSoftFP32.pas
unit MiniSoftFP32; // Copyright (C) 2018, Benjamin "BeRo" Rosseaux (benjamin@rosseaux.de) - License: CC0
// Declaimer / Notice of caution:
// Attention, this code implements only the basic functions, but for example not the correct handling of
// Infinity, NaN, division-by-zero special cases and so on.
// In short, this code is only intended for demystifying the base floating point arithmetics (using 32-bit
// single precision floating point values in this implementation).
{$ifdef fpc}
{$mode delphi}
{$if defined(cpu386) or defined(cpuamd64)}
{$asmmode intel}
@BeRo1985
BeRo1985 / gfxapiwrappers.md
Last active May 27, 2020
GFX API wrappers
View gfxapiwrappers.md
@BeRo1985
BeRo1985 / ForceDedicatedGPUUsageForOpenGL.pas
Created May 30, 2018
Force usage of dedicated GPU for OpenGL with Delphi and FreePascal/Lazarus on Multi-GPU systems such as Notebooks on Windows
View ForceDedicatedGPUUsageForOpenGL.pas
// Force usage of dedicated GPU for OpenGL with Delphi and FreePascal/Lazarus on Multi-GPU systems such as Notebooks on Windows
// Insert that into your main source file, which is for example the .dpr (Delphi) or .lpr (Lazarus) file
{$define ForceDedicatedGPUUsage} // then you can uncomment and recomment this line, for compile-time-switching between
// integrated GPU and dedicated GPU
{$if defined(Windows) and defined(ForceDedicatedGPUUsage) and (defined(cpu386) or defined(cpux64) or defined(cpuamd64))}
{$ifdef fpc}
{$asmmode intel}
{$endif}
View gist:c1373a49b8ed19499d8bc07eda95a382

This line will replace the last octet of ipv4 adresses in a given file with a zero:

sed -i '' -e 's/\(\([0-9]\{1,3\}\.\)\{3\}\)[0-9]\{1,3\}/\10/g' <filename>