// on "init" you need to initialize your instance bool PageTest::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } scheduleUpdate(); percent = 0; Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto loadingBar = ui::LoadingBar::create("sliderProgress.png"); loadingBar->setTag(0); loadingBar->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); loadingBar->setPercent(percent); this->addChild(loadingBar); auto checkBox = ui::CheckBox::create("check_box_normal.png", "check_box_normal_press.png", "check_box_active.png", "check_box_normal_disable.png", "check_box_active_disable.png"); checkBox->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 100)); checkBox->addEventListener(CC_CALLBACK_2(PageTest::selectedEvent, this)); this->addChild(checkBox); auto slider = ui::Slider::create(); slider->loadBarTexture("sliderTrack.png"); slider->loadSlidBallTextures("sliderThumb.png", "sliderThumb.png", ""); slider->loadProgressBarTexture("sliderProgress.png"); slider->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 200)); slider->addEventListener(CC_CALLBACK_2(PageTest::sliderEvent, this)); this->addChild(slider); // auto recustom = ui::RichElementCustomNode::create(1, Color3B::WHITE, 255, pAr); // richText->pushBackElement(recustom); // androidだとバックグランドが緑がデフォ? // androidだと盤面全体が背景白になる // http://discuss.cocos2d-x.org/t/ui-pageview-bug-with-v3-rc1-green-background-on-android/12897 // auto layout = ui::Layout::create(); layout->setSize(Size(visibleSize.width, 200.0f)); layout->setPosition(Vec2::ZERO); layout->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID); layout->setBackGroundColor(Color3B::BLUE); this->addChild(layout); auto pageView = ui::PageView::create(); /* pageView->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID); pageView->setBackGroundColor(Color3B::RED); */ pageView->setSize(Size(visibleSize.width, 130.0f)); pageView->setPosition(Vec2::ZERO); pageView->setContentSize(Size(visibleSize.width, 130.0f)); for (int i = 0; i < 3; ++i) { auto layout = ui::Layout::create(); layout->setBackGroundImage(""); layout->setBackGroundColor(Color3B::YELLOW); layout->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID); layout->setSize(Size(240.0f, 130.0f)); // layout->addTouchEventListener(<#ccWidgetTouchCallback callback#>) auto imageView = ui::ImageView::create("HelloWorld.png"); imageView->setScale9Enabled(true); imageView->setSize(Size(240, 130)); imageView->setPosition(Vec2(layout->getSize().width / 2.0f, layout->getSize().height / 2.0f)); layout->addChild(imageView); auto label = ui::Text::create(StringUtils::format("page %d",(i+1)), "Arial", 30); label->setColor(Color3B(192, 192, 192)); label->setPosition(Vec2(layout->getSize().width / 2.0f, layout->getSize().height / 2.0f)); layout->addChild(label); auto btn = ui::Button::create(""); btn->setTitleText(""); btn->setTitleFontSize(12); btn->setTitleFontName(""); pageView->addPage(layout); } // pageView->scrollToPage(2); // うまくいかない。handleReleaseLogicのboundaryのためだと思われる pageView->addEventListener(CC_CALLBACK_2(PageTest::pageViewEvent, this)); layout->addChild(pageView); auto richText = ui::RichText::create(); richText->ignoreContentAdaptWithSize(false); richText->setSize(Size(100, 100)); richText->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 300)); this->addChild(richText); auto re1 = ui::RichElementText::create(1, Color3B::WHITE, 255, "This color is white. ", "Arial", 10); richText->pushBackElement(re1); auto re2 = ui::RichElementText::create(2, Color3B::YELLOW, 255, "This color is yellow. ", "Arial", 24); richText->insertElement(re2, 1); auto reimg = ui::RichElementImage::create(6, Color3B::WHITE, 255, "sliderballnormal.png"); richText->pushBackElement(reimg); return true; }
int Message_recv(XPlat_Socket sock_fd, vector_t* packets_in, Rank iinlet_rank) { int retval; unsigned int i; uint32_t num_packets = 0; uint32_t num_buffers = 0; PDR pdrs; enum pdr_op op = PDR_DECODE; size_t psz, recv_total, total_bytes = 0; uint64_t buf_len = 0; ssize_t readRet; XPlat_NCBuf_t* ncbufs; Packet_t* new_packet; uint64_t *packet_sizes; char *buf = NULL; mrn_dbg_func_begin(); mrn_dbg(5, mrn_printf(FLF, stderr, "sock_fd = %d\n", sock_fd)); // // packet count // mrn_dbg(5, mrn_printf(FLF, stderr, "Calling sizeof ...\n")); pdr_sizeof((pdrproc_t)(pdr_uint32), &num_packets, &buf_len); assert(buf_len); buf = (char*) malloc(buf_len + 1); assert(buf); mrn_dbg(3, mrn_printf(FLF, stderr, "Reading packet count\n")); readRet = MRN_recv(sock_fd, buf, buf_len + 1); if( readRet != (ssize_t)buf_len + 1) { mrn_dbg(3, mrn_printf(FLF, stderr, "MRN_recv() of packet count failed\n")); free(buf); return -1; } mrn_dbg(5, mrn_printf(FLF, stderr, "Calling memcreate ...\n")); pdrmem_create(&pdrs, &(buf[1]), buf_len, op, (pdr_byteorder) buf[0]); mrn_dbg(5, mrn_printf(FLF, stderr, "Calling uint32 ...\n")); if( ! pdr_uint32(&pdrs, &num_packets) ) { error(ERR_PACKING, iinlet_rank, "pdr_uint32() failed\n"); free(buf); return -1; } free(buf); mrn_dbg(3, mrn_printf(FLF, stderr, "Will receive %u packets\n", num_packets)); if( num_packets > 10000 ) mrn_dbg(1, mrn_printf(FLF, stderr, "WARNING: Receiving more than 10000 packets\n")); if( num_packets == 0 ) mrn_dbg(1, mrn_printf(FLF, stderr, "WARNING: Receiving zero packets\n")); num_buffers = num_packets * 2; // // packet size vector // //buf_len's value is hardcode, breaking pdr encapsulation barrier buf_len = (sizeof(uint64_t) * num_buffers) + 1; // 1 byte pdr overhead //mrn_dbg(5, mrn_printf(FLF, stderr, "Calling malloc(%u) ...\n", buf_len)); buf = (char*) malloc( buf_len ); if( buf == NULL ) { mrn_dbg(1, mrn_printf(FLF, stderr, "malloc failed for buf\n")); return -1; } //mrn_dbg(5, mrn_printf(FLF, stderr, "Calling malloc ...\n")); packet_sizes = (uint64_t*) malloc( sizeof(uint64_t) * (size_t)num_buffers ); if( packet_sizes == NULL ) { mrn_dbg(1, mrn_printf(FLF, stderr, "malloc failed for packet_sizes\n")); return -1; } mrn_dbg(5, mrn_printf(FLF, stderr, "Calling read(%p, %"PRIu64") for %d buffer lengths.\n", buf, buf_len, num_buffers)); readRet = MRN_recv(sock_fd, buf, (size_t)buf_len); if( readRet != (ssize_t)buf_len ) { mrn_dbg(3, mrn_printf(FLF, stderr, "MRN_recv() %"PRIsszt" of %"PRIsszt" bytes received\n", readRet, buf_len)); free(buf); //free(packet_sizes); return -1; } pdrmem_create(&pdrs, buf, buf_len, op, pdrmem_getbo()); if( ! pdr_vector(&pdrs, (char*)packet_sizes, num_buffers, (uint64_t) sizeof(uint64_t), (pdrproc_t)pdr_uint64) ) { mrn_dbg(1, mrn_printf(FLF, stderr, "pdr_vector() failed\n")); error(ERR_PACKING, iinlet_rank, "pdr_uint32() failed\n"); free(buf); free(packet_sizes); return -1; } free(buf); // // packets // /* recv packet buffers */ ncbufs = (XPlat_NCBuf_t*) malloc( sizeof(XPlat_NCBuf_t) * (size_t)num_buffers ); assert(ncbufs); mrn_dbg(5, mrn_printf(FLF, stderr, "Reading %u packets:\n", num_packets)); for( i = 0; i < num_buffers; i++ ) { psz = (size_t) packet_sizes[i]; ncbufs[i].buf = (char*) malloc(psz); assert(ncbufs[i].buf); ncbufs[i].len = psz; total_bytes += psz; mrn_dbg(5, mrn_printf(FLF, stderr, "- buffer[%u] has size %"PRIsszt"\n", i, psz)); } mrn_dbg(5, mrn_printf(FLF, stderr, "Reading num_buffers=%d\n", num_buffers)); recv_total = 0; for(i = 0; i < num_buffers; i++ ) { readRet = MRN_recv( sock_fd, ncbufs[i].buf, ncbufs[i].len ); if( readRet < 0 ) { mrn_dbg(1, mrn_printf(FLF, stderr, "MRN_recv() failed for packet %u\n", i)); break; } recv_total += (int) readRet; } if( recv_total != total_bytes ) { mrn_dbg(1, mrn_printf(FLF, stderr, "%"PRIsszt" of %"PRIsszt" received\n", recv_total, total_bytes)); for( i = 0; i < num_buffers; i++ ) free((void*)(ncbufs[i].buf)); free(ncbufs); free(packet_sizes); return -1; } // // post-processing // retval = 0; mrn_dbg(3, mrn_printf(FLF, stderr, "Creating Packets ...\n")); for( i = 0; i < num_buffers; i += 2 ) { mrn_dbg(5, mrn_printf(FLF, stderr, "creating packet[%d]\n",i)); new_packet = new_Packet_t_3( ncbufs[i].len, ncbufs[i].buf, ncbufs[i+1].len, ncbufs[i+1].buf, iinlet_rank ); if( new_packet == NULL ) { mrn_dbg(1, mrn_printf(FLF, stderr, "packet creation failed\n")); retval = -1; break; } pushBackElement(packets_in, new_packet); } // release dynamically allocated memory // Note: on success return, don't release the packet buffers; // that memory was passed to the Packet object(s). if( retval == -1 ) { for (i = 0; i < num_buffers; i++) { char * b = ncbufs[i].buf; free(b); } } free( ncbufs ); free( packet_sizes ); mrn_dbg_func_end(); return retval; }