static int transform_plugin(TSCont contp, TSEvent event, void *edata) { TSHttpTxn txnp = (TSHttpTxn) edata; switch (event) { case TS_EVENT_HTTP_READ_REQUEST_HDR: if (request_ok(txnp)) { TSHttpTxnHookAdd(txnp, TS_HTTP_READ_CACHE_HDR_HOOK, contp); TSHttpTxnHookAdd(txnp, TS_HTTP_READ_RESPONSE_HDR_HOOK, contp); } TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE); break; case TS_EVENT_HTTP_READ_CACHE_HDR: if (cache_response_ok(txnp)) { TSHttpTxnHookAdd(txnp, TS_HTTP_RESPONSE_TRANSFORM_HOOK, transform_create(txnp)); } TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE); break; case TS_EVENT_HTTP_READ_RESPONSE_HDR: if (server_response_ok(txnp)) { TSHttpTxnHookAdd(txnp, TS_HTTP_RESPONSE_TRANSFORM_HOOK, transform_create(txnp)); } TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE); break; default: break; } return 0; }
int main(void) { //Create game object zephyrjc_t *game = zephyrjc_init(); //Init graphics zephyrjc_init_graphics(game, 640, 480, 32); //Init keyboard zephyrjc_keyboard_init(game); //Create scenario and set as current scenario_t *test_scenario = scenario_create(game); zephyrjc_set_current_scenario(game, test_scenario); //Create an abstract object object_t *obj = object_create(test_scenario); //Add transform component to object component_t *transform = transform_create(obj); //Add tilemap component_t *tileengine = tileengine_create(obj); tilepool_t *tp = create_tilepool("tiles.png", 16, 16, 0, 0, 55, 36); uint16_t test_array[36][55]; for(int y=0;y<36;y++) { for (int x=0;x<55;x++) { test_array[y][x] = x+y*55; } } tilemap_t *tilemap = create_tilemap(tp, (uint16_t*) *test_array, 55, 36, 0); tileengine_t *cte = (tileengine_t*) tileengine; cte->current_tilemap = tilemap; cte->source.x = 0; cte->source.y = 0; cte->source.w = 640; cte->source.h = 480; //Add sprite component to object. Set sprite sprite_t *sp = (sprite_t*) sprite_create(obj); spriteBuffer_t *sprite = create_sprite(); load_bmp(sprite, "mario.png"); sprite_set(sp, sprite); //Start Zephyr Jarlsberg & Chedar engine zephyrjc_start(game); return 0; }