Skip to content

Instantly share code, notes, and snippets.

View ykst's full-sized avatar

YUKISHITA Yohsuke ykst

  • Mount Fuji, Japan
View GitHub Profile
TARGET=$(shell basename $(CURDIR))
CC=gcc
CFLAGS= -O2 -Wall -std=gnu99
SRCS=$(wildcard *.c)
OBJS=$(SRCS:%.c=%.o)
HEADERS=$(wildcard *.h)
LDFLAGS= -lm
all: $(TARGET)
@ykst
ykst / AppDelegate.m
Created November 27, 2013 04:35
Empty Applicationで作ったプロジェクトが"Application windows are expected to have a root view controller at the end of application launch"というエラーでStoryboardを読み込まない問題の対処法 ref: http://qiita.com/ykst@github/items/9b0cbd64a23d289f4dcf
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/* 要らない処理
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
*/
return YES;
}
@ykst
ykst / benchmarck.h
Created December 11, 2013 04:11
実行時間を計測する簡易マクロ ref: http://qiita.com/ykst@github/items/1731f82d8c9df37314eb
static inline bool ____benchmark_check_time(char const * const comment, uint64_t const start, uint64_t const tick)
{
if (!tick) return true;
uint64_t const elapsed = mach_absolute_time() - start;
mach_timebase_info_data_t base;
mach_timebase_info(&base);
uint64_t const nsec = elapsed * base.numer / base.denom;
printf("%s: %.3fms\n", comment, nsec / 1000000.0);
return false;
@ykst
ykst / file0.c
Created December 19, 2013 05:02
glFinishの代わりにglClientWaitSyncを使う ref: http://qiita.com/ykst@github/items/898a01052de2d867afa8
void fenceSync()
{
// コマンドストリームにfenceを挿入する
GLsync sync = glFenceSyncAPPLE(GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE, 0);
// fenceに到達するまで待つ
glClientWaitSyncAPPLE(sync, GL_SYNC_FLUSH_COMMANDS_BIT_APPLE, GL_TIMEOUT_IGNORED_APPLE);
// syncオブジェクトを解放する
glDeleteSyncAPPLE(sync);
}
cd "$INPUT_FILE_DIR" # move into file dir, otherwise xxd takes the full path for the symbol
/usr/bin/xxd -i "$INPUT_FILE_NAME" | sed s/}\;/,0x00}\;/ > "$DERIVED_SOURCES_DIR/$INPUT_FILE_BASE.glsl.c" # builds a c file with a hex array
@ykst
ykst / Makefile
Created December 25, 2013 14:06
glsl-optimizerでGLSLのオフライン最適化を行う ref: http://qiita.com/ykst@github/items/15a438ccb35db3c3656f
TARGET=glsl_optimizer
CC=g++
CFLAGS= -O2 -Wall
SRCS=$(wildcard *.cpp)
OBJS=$(SRCS:%.cpp=%.o)
STATICLIBS=libglsl_optimizer.a
HEADERS=$(wildcard *.h)
LDFLAGS=
all: $(TARGET)
@ykst
ykst / example.js
Created March 8, 2014 14:40
createObjectURLを使ったらrevokeObjectURLを呼ぶ ref: http://qiita.com/ykst/items/a367359cd4ee96cde802
function loadImage(array_buffer, onload) {
var img = new Image();
img.src = URL.createObjectURL(new Blob([array_buffer], {type:'image/jpeg'}));
img.onload = function() {
onload(img); // imgを即座に使い終わる関数
URL.revokeObjectURL(img.src);
};
}
@ykst
ykst / file2.txt
Created April 5, 2014 06:32
Parsecでアノテーション風にテキストの一部をファイルで置換する ref: http://qiita.com/ykst/items/77aa62ba539eb23bb1d6
ghc --make gen.hs
./gen sample.js
using(something, 100) {
something_show(this);
}
#include <libkern/OSAtomic.h>
static volatile OSSpinLock lock = OS_SPINLOCK_INIT;
void spinlock_lock()
{
OSSpinLockLock(&lock);
}
void spinlock_unlock()