예제 #1
0
 void ROI_Item::zero () 
 {
   Window::GrabContext context;
   bind();
   std::vector<GLubyte> data (info().dim(0)*info().dim(1));
   for (int n = 0; n < info().dim(2); ++n)
     upload_data ({ { 0, 0, n } }, { { info().dim(0), info().dim(1), 1 } }, reinterpret_cast<void*> (&data[0]));
 }
예제 #2
0
 void ROI_Item::zero ()
 {
   MRView::GrabContext context;
   ASSERT_GL_MRVIEW_CONTEXT_IS_CURRENT;
   bind();
   vector<GLubyte> data (header().size(0)*header().size(1));
   for (int n = 0; n < header().size(2); ++n)
     upload_data ({ { 0, 0, n } }, { { header().size(0), header().size(1), 1 } }, reinterpret_cast<void*> (&data[0]));
   ASSERT_GL_MRVIEW_CONTEXT_IS_CURRENT;
 }
예제 #3
0
파일: main_RC.c 프로젝트: ntrtrung/eBATMAN
void Upload_Data(id_ip *data_server_list,int data_server_id, char *server_id_string)
{
	char *data_server_ip;
	data_server_ip = look_up_ip(data_server_list,data_server_id);
	if(data_server_ip == NULL)
	{
		printf("\n ERROR : Cannot find ip of data server with ip:%d",data_server_id);
		return;
	}
	if( upload_data(ST,data_server_ip,directory,server_id_string) == -1)
		printf("Upload data error");
	else
        printf("\nData have been uploaded successfuly \n");
}
예제 #4
0
파일: item.cpp 프로젝트: apprisi/mrtrix3
 void ROI_Item::load (const MR::Image::Header& header) {
   bind();
   MR::Image::Buffer<bool> buffer (header);
   auto vox = buffer.voxel();
   std::vector<GLubyte> data (vox.dim(0)*vox.dim(1));
   ProgressBar progress ("loading ROI image \"" + header.name() + "\"...");
   for (auto outer = MR::Image::Loop(2,3) (vox); outer; ++outer) {
     auto p = data.begin();
     for (auto inner = MR::Image::Loop (0,2) (vox); inner; ++inner)
       *(p++) = vox.value();
     upload_data ({ { 0, 0, vox[2] } }, { { vox.dim(0), vox.dim(1), 1 } }, reinterpret_cast<void*> (&data[0]));
     ++progress;
   }
   filename = header.name();
 }
예제 #5
0
 void ROI_Item::load ()
 {
   ASSERT_GL_MRVIEW_CONTEXT_IS_CURRENT;
   MRView::GrabContext context;
   bind();
   auto image = header().get_image<bool>();
   vector<GLubyte> data (image.size(0)*image.size(1));
   ProgressBar progress ("loading ROI image \"" + header().name() + "\"");
   for (auto outer = MR::Loop(2) (image); outer; ++outer) {
     auto p = data.begin();
     for (auto inner = MR::Loop (0,2) (image); inner; ++inner)
       *(p++) = image.value();
     upload_data ({ { 0, 0, image.index(2) } }, { { image.size(0), image.size(1), 1 } }, reinterpret_cast<void*> (&data[0]));
     ++progress;
   }
   filename = header().name();
   ASSERT_GL_MRVIEW_CONTEXT_IS_CURRENT;
 }
예제 #6
0
int
main (int argc, char **argv)
{
    GTimer *timer;
    int frame_count;
    GLuint handle;
    GLenum err;
    GTimer *frame_timer;
    double direction = OPACITY_INCREMENT;

    g_type_init();

    grand = g_rand_new();

    frame_timer = g_timer_new();
    g_timer_start(frame_timer);

    load_data();
    canvas_pixbuf = gdk_pixbuf_new_from_file(CANVAS_FILENAME, NULL);
    g_assert(canvas_pixbuf);

    glutInit(&argc, argv);
    glutCreateWindow("color-convert");
    glutFullScreen();

    err = glewInit();
    g_assert(err == GLEW_OK);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0f, (float) WIDTH, (float) HEIGHT, 0.0f, -1.0f, 1.0f);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    glDepthRange(0.0f, 1.0f);
    glViewport(0, 0, WIDTH, HEIGHT);
    glRasterPos2f(0.0f, 0.0f);

    glEnable(GL_TEXTURE_2D);

    handle = compile_program();
    glUseProgram(handle);
    setup_textures(handle);

    frame_count = 1;
    timer = g_timer_new();

    while (TRUE) {
        double elapsed;
        GLint location;

        opacity += direction;
        if (opacity >= 1.0) {
            direction = -OPACITY_INCREMENT;
        } else if (opacity <= 0.0) {
            direction = OPACITY_INCREMENT;
        }

        location = glGetUniformLocation(handle, "opacity");
        glUniform1f(location, opacity);

        upload_data();
        draw_scene();

        glutSwapBuffers();

        frame_count ++;

        elapsed = g_timer_elapsed(frame_timer, NULL) * 1000;
        if (elapsed < FRAME_TIME_MS) {
            g_usleep(1000 * (FRAME_TIME_MS - elapsed));
        }

        g_timer_start(frame_timer);

        if (frame_count % 1000 == 0) {
            double fps;

            fps = 1000 / g_timer_elapsed(timer, NULL);
            g_timer_start(timer);
            g_print("Framerate: %gfps\n", fps);
        }
    }
}
예제 #7
0
파일: asset.cpp 프로젝트: emailhy/kri
	Pointer<Scene> Loader3Ds::read(const char *path)	{
		Pointer<Scene> pScene;
		char pathBuf[100];
		strcpy(pathBuf,path);
		char *const lastSlash = strrchr(pathBuf,'/');
		const char* modPath = Core::Inst()->mResMan->modPath(path);
		Lib3dsFile *const f3d = lib3ds_file_open(modPath);
		if(!f3d)
			return pScene;
		int i;
		LoaderTGA loadTGA;
		pScene.alloc();
		for(i=0; i<f3d->nmaterials; ++i)	{
			Pointer<Material> pMat = new Material();
			pScene->mMaterials.insert(pMat);
			const Lib3dsMaterial &m = *f3d->materials[i];
			pMat->diffuse	= glm::vec4( m.diffuse[0], m.diffuse[1], m.diffuse[2], 1.f );
			pMat->specular	= glm::vec4( m.specular[0],m.specular[1],m.specular[2],1.f );
			pMat->glossiness = 100.f * m.shininess;
			if( m.texture1_map.name[0] )	{
				strcpy((lastSlash ? lastSlash+1 : pathBuf), m.texture1_map.name );
				pMat->pTexture = loadTGA.read(pathBuf);
			}
			if(! pMat->pTexture )
				pMat->pTexture = defColorTex;
		}
		for(i=0; i<f3d->nmeshes; ++i)	{
			Lib3dsMesh *const lm = f3d->meshes[i];
			normalize(*lm);
			qsort( lm->faces, lm->nfaces, sizeof(Lib3dsFace), Comparator::faces );
			const Pointer< Array<VertexData> > pUnrolled = unroll_vertices(lm);
			Pointer<Mesh> pMesh, pOrig = (doSquash ?
				upload_data_squashed(*pUnrolled) : upload_data(*pUnrolled));
			if(doTransform)
				pOrig->pNode.alloc()->local = *reinterpret_cast<glm::mat4*>( lm->matrix );
			//read face data
			int j, prev = -1,start=0;
			for(j=0; j<lm->nfaces; ++j)	{
				const int cur = lm->faces[j].material;
				if(cur == prev) continue;
				if( pMesh.get() )
					pMesh->setup(GL_TRIANGLES,3*start,3*j);
				List< Pointer<Material> > *pl = &pScene->mMaterials;
				for(int counter=cur; pl && --counter>=0; pl=pl->next.get());
				assert(pl);
				pMesh = new Mesh(*pOrig);
				pScene->mMeshes.insert(pMesh);
				pMesh->pMaterial = pl->data;
				start=j; prev=cur;
			}
			if(pMesh.get())
				pMesh->setup(GL_TRIANGLES,3*start,3*j);
		}
		for(i=0; i<f3d->ncameras; ++i)	{
			Pointer<Camera> pCam = new Camera();
			pScene->mCameras.insert(pCam);
			const Lib3dsCamera &cam = *f3d->cameras[i];
			pCam->near = cam.near_range;
			if(pCam->near < 0.01f)	{
				//invalid near plane value!
				pCam->near = 1.f;
			}
			pCam->far = cam.far_range;
			pCam->fov = cam.fov;
			const Pointer<Node> &pn = pCam->pNode = new Node();
			pn->local = makeSpatial( cam.position, cam.target, cam.roll );
		}
		for(i=0; i<f3d->nlights; ++i)	{
			Pointer<Light> pLit = new Light();
			pScene->mLights.insert(pLit);
			const Lib3dsLight &lit = *f3d->lights[i];
			pLit->near = lit.inner_range;
			pLit->far = lit.outer_range;
			pLit->fov = lit.falloff;
			pLit->hotspot = lit.hotspot / lit.falloff;
			pLit->attenuation = lit.attenuation;
			pLit->color = lit.multiplier * glm::vec4( lit.color[0], lit.color[1], lit.color[2], 1.f );
			const Pointer<Node> &pn = pLit->pNode = new Node();
			pn->local = makeSpatial( lit.position, lit.target, lit.roll );
		}

 		return pScene;
	}
예제 #8
0
파일: edclient.c 프로젝트: uukuguy/legolas
/* ================ client_thread_main() ================ */
void client_thread_main(zsock_t *pipe, void *user_data)
{
    client_t *client = (client_t*)user_data;
    int id = client->id;
    UNUSED const char *file_data = client->file_data;
    UNUSED uint32_t file_size = client->file_size;

    trace_log("Client %d Ready.", id);

    zsock_signal(pipe, 0);

    char sz_id[16];
    sprintf(sz_id, "%d", id);

    message_send_status(pipe, MSG_STATUS_ACTOR_READY);

    zsock_t *sock_client = zsock_new_req(client->endpoint);
    if ( sock_client == NULL ){
        error_log("Connect broker failed. Client %d", client->id);
        return;
    }

    uint32_t file_count = 0;
    while ( true ){

        char key[NAME_MAX];
        client_rebuild_data_key(client, file_count, key);

        int retries = 0;
        while ( retries++ < RETRIES ) {

            int rc = 0;
            if ( client->op_code == 1 ) {
                rc = upload_data(sock_client, key, file_data, file_size);
            } else if ( client->op_code == 2 ) {
                rc = download_data(sock_client, key);
            } else if ( client->op_code == 3 ) {
                rc = delete_data(sock_client, key);
            }
            if ( rc == -2 ) break;
            if ( rc == 0 ) break;

            notice_log("Retry %d/%d...", retries, RETRIES);
            zclock_sleep(1000);
        }

        /* ---------------- Check exit loop ---------------- */

        file_count++;
        if ( file_count % 100 == 1 || file_count + 5 >= client->total_files ){
            info_log("Client %d Send message %d/%d", client->id, file_count, client->total_files);
        }
        if ( file_count >= client->total_files )
            break;
    }

    message_send_status(pipe, MSG_STATUS_ACTOR_OVER);

    zsock_destroy(&sock_client);

    trace_log("Client %d Exit.", id);

}
예제 #9
0
int Video::upload_slice(
        const string &srcPath,
        const string &bucketName,
        const string &dstPath,
        const string &videoCover,
        const string &bizAttr,
		const string &title,
		const string &desc,
		const string &magicContext,
        const int sliceSize,
        const string &session) {

    reset();
    int ret = 0;
    ret = access(srcPath.c_str(), F_OK | R_OK);
    if (ret != 0) {
        retCode = VIDEO_FILE_NOT_EXISTS;
        retMsg = "file not exist or can not be read...";
        return retCode;
    }

    string encodePath = videoUrlEncode(dstPath);
    uint64_t expired = time(NULL) + EXPIRED_SECONDS;
    string url = generateResUrl(bucketName, encodePath);

    string sign =
        Auth::appSign(
                APPID, SECRET_ID, SECRET_KEY,
                expired, bucketName);

    vector<string> headers;
    headers.push_back("Authorization: " + sign);

    uint64_t fileSize = 0;
    string sha1 = genFileSHA1AndLen(srcPath, &fileSize);

    upload_prepare(fileSize, sha1, sign, url, videoCover, bizAttr, title, desc, magicContext, session, sliceSize);

    dump_res();

    if (retCode != 0) {
        return retCode;
    }

    if (retJson["data"].isMember("url")) {
        //秒传成功,直接返回了url
        return retCode;
    } 

    if (!retJson["data"].isMember("offset")
            || !retJson["data"].isMember("session")
            || !retJson["data"].isMember("slice_size")) {
        return retCode;
    }

    upload_data(fileSize, sha1, 
            retJson["data"]["slice_size"].asUInt64(),
            sign, url, srcPath, 
            retJson["data"]["offset"].asUInt64(),
            retJson["data"]["session"].asString());

    return retCode;
}