Skip to content

Instantly share code, notes, and snippets.

View audinue's full-sized avatar

Audi Nugraha audinue

  • Surabaya, Jawa Timur, Indonesia
View GitHub Profile
package sketch;
import java.awt.Rectangle;
import java.util.HashMap;
public class Ui {
//////////////////////////////////// STATE /////////////////////////////////////
private static class State {
Alignment Formula:
itemLocation = containerLocation + containerSize * alignmentFactor - itemSize * alignmentFactor
item.x = container.x + container.width * alignment.x - item.width * alignment.x
item.y = container.y + container.height * alignment.y - item.height * alignment.y
<canvas id="canvas" width="500" height="500"></canvas>
<script>
Object.assign(new Image(), {
src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAAXNSR0IArs4c6QAAADdJREFUCJlVzLENwCAMAMEjosL7D+DNzCRORUS+Pv3o7nYVESZUFchM8Byx9/70vMVprLV+T3gB2s0OUOHHM2YAAAAASUVORK5CYII=',
onload: function () {
var ctx = canvas.getContext('2d')
ctx.fillStyle = '#a0a0a0'
ctx.fillRect(0, 0, canvas.width, canvas.height)
public static int getInternalFormat(BufferedImage image) {
switch (image.getType()) {
case BufferedImage.TYPE_3BYTE_BGR:
return GL_RGB;
case BufferedImage.TYPE_4BYTE_ABGR:
return GL_RGBA;
default:
throw new UnsupportedOperationException();
}
}
function newBuckets (size) {
let buckets = []
for (let i = 0; i < size; i++) {
buckets.push(null)
}
return buckets
}
function getBucket (key, buckets) {
return key.hashCode() % buckets.length
@audinue
audinue / ByteBitmask.java
Created June 29, 2023 13:49
Java bitmask classes.
public class ByteBitmask {
public static final byte MASK_0 = 1 << 0;
public static final byte MASK_1 = 1 << 1;
public static final byte MASK_2 = 1 << 2;
public static final byte MASK_3 = 1 << 3;
public static final byte MASK_4 = 1 << 4;
public static final byte MASK_5 = 1 << 5;
public static final byte MASK_6 = 1 << 6;
public static final byte MASK_7 = (byte) (1 << 7);
@audinue
audinue / Node.java
Last active June 21, 2023 18:07
Tested minimal DOM node implementation.
public class Node {
public Node getParentNode() {
return parentNode;
}
public Node getPreviousSibling() {
return previousSibling;
}
/*
SSAO GLSL shader v1.2
assembled by Martins Upitis (martinsh) (devlog-martinsh.blogspot.com)
original technique is made by Arkano22 (www.gamedev.net/topic/550699-ssao-no-halo-artifacts/)
changelog:
1.2 - added fog calculation to mask AO. Minor fixes.
1.1 - added spiral sampling method from here:
(http://www.cgafaq.info/wiki/Evenly_distributed_points_on_sphere)
*/
@audinue
audinue / Foo.java
Created May 18, 2023 10:04
Desktop Java base class.
package com.example;
import java.io.InputStream;
import java.net.URLClassLoader;
import java.util.jar.Manifest;
public class Foo {
public void bar() {
}
@audinue
audinue / closest.js
Last active May 24, 2023 18:57
Closest 3D point on triangle. Expanded from SharpDX implementation.
function closest (result, p, a, b, c) {
var px = p[0]
var py = p[1]
var pz = p[2]
var ax = a[0]
var ay = a[1]
var az = a[2]
var bx = b[0]
var by = b[1]
var bz = b[2]