///////////////////////////////////////////////////////// // // pix_multiimage // ///////////////////////////////////////////////////////// // Constructor // ///////////////////////////////////////////////////////// pix_multiimage :: pix_multiimage(t_symbol *filename, t_floatarg baseImage, t_floatarg topImage, t_floatarg skipRate) : m_numImages(0), m_curImage(-1), m_loadedCache(NULL) { inlet_new(this->x_obj, &this->x_obj->ob_pd, gensym("float"), gensym("img_num")); m_pixBlock.image = m_imageStruct; // make sure that there are some characters if (filename->s_name[0]) { if (skipRate == 0) { if (topImage == 0) openMess(filename, 0, (int)baseImage, 1); else openMess(filename, (int)baseImage, (int)topImage, 1); }else openMess(filename, (int)baseImage, (int)topImage, (int)skipRate); } }
///////////////////////////////////////////////////////// // // multimodel // ///////////////////////////////////////////////////////// // Constructor // ///////////////////////////////////////////////////////// multimodel :: multimodel(t_symbol *filename, t_floatarg baseModel, t_floatarg topModel, t_floatarg skipRate) : m_loader(NULL), m_size_change_flag(false), m_position(256,3), m_texture (256,2), m_color (256,4), m_normal (256,3), m_infoOut(gem::RTE::Outlet(this)), m_drawType(GL_TRIANGLES) { m_drawTypes.clear(); m_drawTypes["default"]=m_drawType; m_drawTypes["point"]=GL_POINTS; m_drawTypes["points"]=GL_POINTS; m_drawTypes["line"]=GL_LINES; m_drawTypes["lines"]=GL_LINES; m_drawTypes["fill"]=GL_TRIANGLES; inlet_new(this->x_obj, &this->x_obj->ob_pd, &s_float, gensym("mdl_num")); // make sure that there are some characters if (filename&&filename->s_name&&*filename->s_name) { openMess(filename->s_name, baseModel, topModel, skipRate); } }
///////////////////////////////////////////////////////// // // model // ///////////////////////////////////////////////////////// // Constructor // ///////////////////////////////////////////////////////// model :: model(t_symbol *filename) : m_loader(gem::plugins::modelloader::getInstance()), m_loaded(false) { // make sure that there are some characters if (filename&&filename->s_name&&*filename->s_name) openMess(filename->s_name); }
vertex_program :: vertex_program(t_symbol *filename) : m_programType(GEM_PROGRAM_none), m_programID(0), m_programString(NULL), m_size(0), m_buf(std::string()), m_envNum(-1) { openMess(filename); }
//////////////////////////////////////////////////////// // startRendering // ///////////////////////////////////////////////////////// void glsl_vertex :: startRendering() { if(NULL!=m_shaderFilename) openMess(m_shaderFilename); if (m_shaderString == NULL) { error("need to load a shader"); return; } }
///////////////////////////////////////////////////////// // // pix_image // ///////////////////////////////////////////////////////// // Constructor // ///////////////////////////////////////////////////////// pix_image :: pix_image(t_symbol *filename) : m_wantThread(true), m_loadedImage(NULL), m_id(gem::image::load::INVALID), m_infoOut(gem::RTE::Outlet(this)) { int ival=m_wantThread; gem::Settings::get("image.loading.thread", ival); m_wantThread=(ival!=0); if(filename!=&s_)openMess(filename->s_name); gem::image::load::poll(); }
glsl_vertex :: glsl_vertex(t_symbol *filename) : m_shaderTarget(0), m_shader(0), m_shaderARB(0), m_compiled(0), m_size(0), m_shaderString(NULL), m_shaderFilename(NULL), m_shaderID(0) { openMess(filename); // create an outlet to send shader object ID m_outShaderID = outlet_new(this->x_obj, &s_float); }
///////////////////////////////////////////////////////// // Constructor // ///////////////////////////////////////////////////////// GemPathBase :: GemPathBase(int argc, t_atom *argv) : m_numDimens(1), m_array(NULL), m_out1(NULL) { m_out1 = outlet_new(this->x_obj, 0); if (argc >= 2) openMess(atom_getsymbol(&argv[1])); if (argc >= 1) { m_numDimens = (int)atom_getfloat(&argv[0]); if (m_numDimens < 1) m_numDimens = 1; if (m_numDimens > 64) { error("too many dimensions, must be below 64"); m_numDimens = 64; } } }
pix_movieDS :: pix_movieDS(t_symbol *filename) : m_haveMovie(FALSE), m_frame(NULL), m_csize(0), m_xsize(0), m_ysize(0), FilterGraph(NULL), VideoFilter(NULL), SampleFilter(NULL), NullFilter(NULL), SampleGrabber(NULL), MediaControl(NULL), MediaSeeking(NULL), MediaPosition(NULL) { HRESULT RetVal; m_dataSize[0] = m_csize; m_dataSize[1] = m_xsize; m_dataSize[2] = m_ysize; // Initialize COM CoInitialize(NULL); // Create the base object of a filter graph RetVal = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&FilterGraph); if (RetVal != S_OK || NULL == FilterGraph) { error("Unable to create FilterGraph interface %d", RetVal); return; } // Get the IMediaControl interface for Run, Stop, Pause and keeps control states RetVal = FilterGraph->QueryInterface(IID_IMediaControl, (void **)&MediaControl); if (RetVal != S_OK || NULL == MediaControl) { error("Unable to create MediaControl interface %d", RetVal); return; } // Get the IMediaSeeking interface for rewinding video at loop point // and set time format to frames RetVal = FilterGraph->QueryInterface(IID_IMediaSeeking, (void **)&MediaSeeking); if (RetVal != S_OK || NULL == MediaSeeking) { error("Unable to create MediaSeeking interface %d", RetVal); return; } // Get the IMediaPosition interface for getting the current position of the clip RetVal = FilterGraph->QueryInterface(IID_IMediaPosition, (void **)&MediaPosition); if (RetVal != S_OK || NULL == MediaPosition) { error("Unable to create MediaPosition interface %d", RetVal); return; } if (strlen(filename->s_name) > 0) { openMess(filename, GL_RGBA); } }