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
@audinue
audinue / scaleToFit.js
Created November 27, 2022 01:25
Scale to fit
function scaleToFit (
contentWidth,
contentHeight,
containerWidth,
containerHeight
) {
var scale = Math.min(containerWidth / contentWidth, containerHeight / contentHeight)
return {
x: containerWidth / 2 - contentWidth * scale / 2,
y: containerHeight / 2 - contentHeight * scale / 2,
function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
console.log(uuidv4());
@audinue
audinue / bitmap.c
Created July 24, 2022 21:38
Load bitmap using GDI+ in C
#include <stdlib.h>
#include <windows.h>
#include <gdiplus.h>
Bitmap* loadBitmap(char* file)
{
int length = strlen(file) + 1;
wchar_t* fileW = (wchar_t*) malloc(length * sizeof(wchar_t));
#include <stdlib.h>
#include <string.h>
typedef struct Entry {
char* key;
void* value;
int next;
} Entry;
typedef struct Map {
#include <stdlib.h>
#include <string.h>
#define CAPACITY 100000
typedef struct Entry {
char* key;
void* value;
struct Entry* next;
} Entry;
#include <stdlib.h>
#include <string.h>
#define CAPACITY 4096
typedef struct Entry {
char* key;
void* value;
struct Entry* next;
} Entry;
@audinue
audinue / SimpleSleepSync.c
Last active July 12, 2022 14:36
Common game loop's sleep
#include <windows.h>
void SleepSync(int targetFps)
{
static DWORD previous = 0;
if (previous == 0)
previous = GetTickCount();
LONGLONG current = GetTickCount();
LONGLONG sleepTime = (1000 / targetFps) - (current - previous);
previous = current;
@audinue
audinue / example.c
Last active July 10, 2022 12:12
C StringBuilder
#include <stdio.h>
#include "sb.c"
void main()
{
SB* sb = sb_new();
sb_add(sb, "[");
char next = 0;
for (int i = 1; i <= 10; ++i)
int hashc(char* p, int sz)
{
if (!sz)
return 0;
sz /= sizeof(char);
int h = 1;
for (int i = 0; i < sz; ++i)
h = 31 * h + *(p + i);
return h;
}
@audinue
audinue / JSON.java
Created July 6, 2022 00:40
Tiny single file JSON parser and stringifier. Java 5 compatible.
import java.util.*;
import java.util.Map.*;
import java.util.regex.*;
@SuppressWarnings("unchecked")
public final class JSON {
private JSON() {
}