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;
}
Exemple #2
0
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;
}
Exemple #3
0
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;
}
Exemple #4
0
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;
}