t_jit_tml_gl_videoplane *jit_gl_videoplane_new(t_symbol * dest_name) { t_jit_tml_gl_videoplane *x; t_atom rav[4]; t_atom *av=rav; // make jit object if (x = (t_jit_tml_gl_videoplane *)jit_object_alloc(_jit_tml_gl_videoplane_class)) { // create and attach ob3d jit_ob3d_new(x, dest_name); // set instance variable defaults x->dim[0] = 20; x->dim[1] = 20; x->chunk = jit_glchunk_grid_new(_jit_sym_gl_quad_grid, 12, x->dim[0], x->dim[1]); x->recalc = 1; x->displaylist = 0; x->dlref = 0; x->gridmode = 0; x->interp = 1; x->tex_offset_x = 0.; x->tex_offset_y = 0.; x->tex_scale_x = 1.; x->tex_scale_y = 1.; x->nudge = 0.0001; // hack for edges x->rect_tex = 1; x->client_storage = PLATFORM_DYNAMIC_TEX; x->colormode = gensym("argb"); jit_atom_setfloat(av,1.); jit_atom_setfloat(av+1,1.); jit_atom_setfloat(av+2,1.); jit_atom_setfloat(av+3,1.); jit_object_method(x,gensym("color"),4,av); x->texture = jit_object_new(ps_jit_gl_texture,jit_attr_getsym(x,ps_drawto)); if (x->texture) { x->texturename = jit_symbol_unique(); jit_attr_setsym(x->texture,_jit_sym_name,x->texturename); jit_attr_setsym(x->texture,gensym("defaultimage"),gensym("black")); jit_attr_setlong(x->texture,ps_rectangle,x->rect_tex); jit_attr_setsym(x->texture,ps_mode,x->client_storage?ps_dynamic:ps_static); jit_attr_setsym(x,ps_texture,x->texturename); } else { error("jit.tml.gl.videoplane: could not create texture"); x->texturename = _jit_sym_nothing; } } else { error("jit.tml.gl.videoplane: Failed at jit_object_alloc"); x = NULL; } return x; }
t_jit_gl_hap *jit_gl_hap_new(t_symbol * dest_name) { t_jit_gl_hap *x; if (x = (t_jit_gl_hap *)jit_object_alloc(_jit_gl_hap_class)) { jit_ob3d_new(x, dest_name); jit_gl_hap_new_native(x); x->has_video = 0; x->file = _jit_sym_nothing; x->texoutput = jit_object_new(gensym("jit_gl_texture"), dest_name); jit_attr_setsym(x->texoutput,gensym("defaultimage"),gensym("black")); jit_attr_setsym(x->texoutput,_jit_sym_name,jit_symbol_unique()); jit_attr_setlong(x->texoutput, gensym("flip"), 0); x->hapglsl = jit_object_new(gensym("jit_gl_shader"), dest_name); x->buffer = NULL; x->hap_format = JIT_GL_HAP_PF_NONE; x->useshader = 0; x->validframe = 0; x->movieloaded = 0; x->deletetex = 0; x->texture = 0; x->dim[0] = x->dim[1] = 0; x->backingWidth = x->backingHeight = 0; x->roundedWidth = x->roundedHeight = 0; x->internalFormat = x->newInternalFormat = 0; x->newDataLength = x->rowLength = 0; x->target = 0; x->fboid = 0; x->direction = 1; x->suppress_loopnotify=0; x->userloop = 0; x->prevtime = 0; x->flipped = 0; x->adapt = 1; x->fps = 0; x->duration = 0; x->timescale = 0; x->framecount = 0; x->loop = JIT_GL_HAP_LOOP_ON; x->loopflags = 0; x->autostart = 1; x->rate = 1; x->vol = 1; x->rate_preserves_pitch = 1; x->looppoints[0] = x->looppoints[1] = -1; x->loopreport = 0; x->framereport = 0; } else { x = NULL; } return x; }
t_jit_gl_simple *jit_gl_simple_new(t_symbol * dest_name) { t_jit_gl_simple *x; // make jit object if (x = (t_jit_gl_simple *)jit_object_alloc(_jit_gl_simple_class)) { // create and attach ob3d jit_ob3d_new(x, dest_name); } else { x = NULL; } return x; }
t_jit_gl_lua *jit_gl_lua_new(t_symbol * dest_name) { t_jit_gl_lua *x; if (x=(t_jit_gl_lua *)jit_object_alloc(_jit_gl_lua_class)) { // create and attach ob3d jit_ob3d_new(x, dest_name); x->max_wrapper = NULL; //Lua x->lua = NULL; //lua file x->file = _jit_sym_nothing; x->file_volume = 0; x->texthandle = 0; x->file_watcher = NULL; x->textsize = 0; x->autowatch = 1; x->file_path[0] = '\0'; x->path = _jit_sym_nothing; x->drawinfo.ob3d = NULL; x->lua_unique_name = jit_symbol_unique(); x->gc = 1; x->memsize = 0; x->inlets = 1; x->outlets = 1; x->last_inlet = 0; lua_setup_lua(x); } else { x = NULL; } return x; }
t_jit_gl_terrain *jit_gl_terrain_new(t_symbol * dest_name) { t_jit_gl_terrain *x; long i, j; float *vertnorms, *posit, *facenorms,*texcoords; // make jit object if (x = (t_jit_gl_terrain *)jit_object_alloc(_jit_gl_terrain_class)) { // create and attach ob3d jit_ob3d_new(x, dest_name); // set instance variable defaults x->shape = ps_terrain; x->dim[0] = 20; x->dim[1] = 20; x->chunk = jit_glchunk_grid_new(_jit_sym_gl_quad_grid, 12, x->dim[0], x->dim[1]); x->recalc = 1; x->displaylist = 0; x->dlref = 0; x->gridmode = 0; x->ind = 0; x->om = 0; x->coords[0] = 0.1; x->coords[1] = 0.1; x->calc_norms = 1; x->draw_norms=0; x->tail = MAXGRID; for (i=0; i<MAXGRID; i++) { x->pos[i] = 0.0f; // for (j=0; j<MAXGRID; j++) { // temp[i][j] = 0.0f; // temp[i+MAXGRID][j] = 0.0f; // } } // get mem code here x->maxdim[0] = MAXGRID; x->maxdim[1] = MAXGRID; // post("init vars done"); // alloc memory here x->posit= sysmem_newptr(x->maxdim[0]*x->maxdim[1]*sizeof(float)); if(x->posit) { // post("alloced posit %ld * %ld * %ld \(sizeof\(double\)\) = %ld bytes",x->maxdim[0], x->maxdim[1],sizeof(double),x->maxdim[0]*x->maxdim[1]*sizeof(double)); } else { error("couldn't build x->posit"); } x->vertnorms= sysmem_newptr(x->maxdim[0]*x->maxdim[1]* 3 *sizeof(float)); if(x->vertnorms) { // post("alloced vertnorms %ld * %ld * %ld * 3 *\(sizeof\(double\)\) = %ld bytes",x->maxdim[0], x->maxdim[1],sizeof(double),x->maxdim[0]*x->maxdim[1]*3*sizeof(double)); } else { error("couldn't build x->vertnorms"); } x->texcoords= sysmem_newptr(x->maxdim[0]*x->maxdim[1]* 2 *sizeof(float)); if(x->texcoords) { // post("alloced texcoords %ld * %ld * %ld * 3 *\(sizeof\(double\)\) = %ld bytes",x->maxdim[0], x->maxdim[1],sizeof(double),x->maxdim[0]*x->maxdim[1]*3*sizeof(double)); } else { error("couldn't build x->texcoords"); } x->facenorms= sysmem_newptr(2 * x->maxdim[0]*x->maxdim[1]* 3 *sizeof(float)); if(x->facenorms) { // post("alloced vertnorms %ld * %ld * %ld * 3 *\(sizeof\(double\)\) = %ld bytes",x->maxdim[0], x->maxdim[1],sizeof(double),x->maxdim[0]*x->maxdim[1]*3*sizeof(double)); } else { error("couldn't build x->facenorms"); } // post("igniting alloced memory"); vertnorms=x->vertnorms; posit=x->posit; facenorms=x->facenorms; texcoords=x->texcoords; //memset(x->vertnorms, 0, x->maxdim[0]*x->maxdim[1]*sizeof(double)); for (i=0; i<MAXGRID; i++) { for (j=0; j<MAXGRID; j++) { *posit=0.0f; posit++; //(double)((*posit+0))=0.0f; posit++; *vertnorms=0.0f; vertnorms++; *vertnorms=0.0f; vertnorms++; *vertnorms=0.0f; vertnorms++; *texcoords=0.0f; texcoords++; *texcoords=0.0f; texcoords++; *facenorms=0.0f; facenorms++; *facenorms=0.0f; facenorms++; *facenorms=0.0f; facenorms++; *facenorms=0.0f; facenorms++; *facenorms=0.0f; facenorms++; *facenorms=0.0f; facenorms++; /* x->vertnorms[i][j][1]=0.0f; x->vertnorms[i][j][2]=0.0f; x->texcoords[i][j][0]=0.0f; x->texcoords[i][j][1]=0.0f; x->facenorms[0][i][j][0]=0.0f; x->facenorms[0][i][j][1]=0.0f; x->facenorms[0][i][j][2]=0.0f; x->facenorms[1][i][j][0]=0.0f; x->facenorms[1][i][j][1]=0.0f; x->facenorms[1][i][j][2]=0.0f; */ } } } else { x = NULL; } return x; }