当前位置: 首页>>代码示例>>C++>>正文


C++ WindowRef类代码示例

本文整理汇总了C++中WindowRef的典型用法代码示例。如果您正苦于以下问题:C++ WindowRef类的具体用法?C++ WindowRef怎么用?C++ WindowRef使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了WindowRef类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: getWindowIndex

void AppBase::privateUpdate__()
{
	mFrameCount++;

	// service asio::io_service
	mIo->poll();

	if( getNumWindows() > 0 ) {
		WindowRef mainWin = getWindowIndex( 0 );
		if( mainWin )
			mainWin->getRenderer()->makeCurrentContext();
	}

	mSignalUpdate.emit();

	update();

	mTimeline->stepTo( static_cast<float>( getElapsedSeconds() ) );

	double now = mTimer.getSeconds();
	if( now > mFpsLastSampleTime + mFpsSampleInterval ) {
		//calculate average Fps over sample interval
		uint32_t framesPassed = mFrameCount - mFpsLastSampleFrame;
		mAverageFps = (float)(framesPassed / (now - mFpsLastSampleTime));

		mFpsLastSampleTime = now;
		mFpsLastSampleFrame = mFrameCount;
	}
}
开发者ID:kitschpatrol,项目名称:Cinder,代码行数:29,代码来源:AppBase.cpp

示例2: getWindowIndex

void SlingshotSmokeApp::setup()
{
	mVolumeMult = 5.0;

	mLastTime = 0;

	getWindowIndex(0)->getSignalDraw().connect([=]() { drawRender(); });

	mAudioSource = AudioSource();
	mAudioSource.setup();

	vec2 fluidResolution = vec2(512);
	vec2 smokeResolution = app::getWindowSize();

	mFluid = Fluid(fluidResolution);
	mSmokers.reserve(2);
	mSmokers.push_back(shared_ptr<FakeSmoker>(new FakeSmoker(fluidResolution, smokeResolution)));
	mSmokers.push_back(shared_ptr<PositionSmoker>(new PositionSmoker(fluidResolution, smokeResolution)));
	mSmokers.push_back(shared_ptr<TransitionSmoker>(new TransitionSmoker(fluidResolution, smokeResolution)));
	mSmokers.push_back(shared_ptr<BottomSmoker>(new BottomSmoker(fluidResolution, smokeResolution)));
	mCurrentSmoker = 0;

	mSmokers[mCurrentSmoker]->light(vec2(0.5, 0.2), mParams);


	gl::GlslProg::Format renderFormat;
	renderFormat.vertex(app::loadAsset("passthru.vert"));
	renderFormat.fragment(app::loadAsset("Smokers/smoke_draw.frag"));
	mRenderProg = gl::GlslProg::create(renderFormat);
	mRenderProg->uniform("i_resolution", smokeResolution);

	gl::Texture2d::Format texFmt;
	texFmt.setInternalFormat(GL_RGBA32F);
	texFmt.setDataType(GL_FLOAT);
	texFmt.setTarget(GL_TEXTURE_2D);
	texFmt.setWrap(GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE);
	gl::Fbo::Format fmt;
	fmt.disableDepth()
		.setColorTextureFormat(texFmt);
	mSmokeField = PingPongFBO(fmt, smokeResolution, 4);


	// Do params last so that all the FBOs are in the right context
	vec2 paramsSize = vec2(255, 512);
	auto format = Window::Format();
	format.setSize(paramsSize + vec2(40, 20));
	format.setPos(ivec2(100));
	WindowRef paramsWindow = createWindow(format);
	paramsWindow->getSignalDraw().connect([=]() { drawParams(); });
	mParams = params::InterfaceGl::create(paramsWindow, "Options", paramsSize);

	mParams->addParam("Volume", &mVolumeMult)
		.max(10.0)
		.min(0.0)
		.step(0.1);
}
开发者ID:ulyssesp,项目名称:slingshot-smoke,代码行数:56,代码来源:SlingshotSmokeApp.cpp

示例3: initialize

	bool initialize( const WindowRef& window ) override
	{
		// Make sure our window is positioned and sized correctly.
		window->setBorderless( true );
		window->setPos( mRift->getNativeWindowPos() );
		window->setSize( mRift->getNativeWindowResolution() );
		// Create or resize the frame buffer.
		mRift->initializeFrameBuffer();
		initializeDistortion();
		return true;
	}
开发者ID:AphexHenry,项目名称:Oculus-Experiments,代码行数:11,代码来源:CinderOculus.cpp

示例4: connect

void TouchUi::connect( const WindowRef& window, int signalPriority )
{
	mSignalPriority	= signalPriority;
	mWindow			= window;
	if ( window ) {
		mConnectionTouchesBegan = window->getSignalTouchesBegan().connect( signalPriority,
			[ this ]( app::TouchEvent &event ) { touchesBegan( event ); } );
		mConnectionTouchesEnded = window->getSignalTouchesEnded().connect( signalPriority,
			[ this ]( app::TouchEvent &event ) { touchesEnded( event ); } );
		mConnectionTouchesMoved = window->getSignalTouchesMoved().connect( signalPriority,
			[ this ]( app::TouchEvent &event ) { touchesMoved( event ); } );
		mConnectionUpdate = app::App::get()->getSignalUpdate().connect( signalPriority,
			[ this ]() { update(); } );
		if ( mMask.empty() ) {
			setMask( Area( ivec2( 0 ), window->getSize() ) );
		}
	} else {
		disconnect();
	}
}
开发者ID:adamwittsell,项目名称:SpoolCinder,代码行数:20,代码来源:TouchUi.cpp

示例5: Area

TouchUi::TouchUi( const WindowRef& window, int signalPriority )
{
	mEnabled			= true;
	mEnabledConstrain	= true;
	mEnabledPan			= true;
	mEnabledRotation	= true;
	mEnabledScale		= true;
	mEnabledTap			= true;
	mInterpolationSpeed	= 0.33f;
	mNumTouchPointsMax	= numeric_limits<int32_t>::max();
	mNumTouchPointsMin	= 1;
	mPan				= vec2( 0.0f );
	mPanMax				= vec2( numeric_limits<float>::max() );
	mPanMin				= vec2( -numeric_limits<float>::max() );
	mPanSpeed			= vec2( 1.0f );
	mPanTarget			= mPan;
	mPanThreshold		= vec2( 1.0f );
	mRotationSpeed		= -2.5f;
	mRotationThreshold	= 0.005f;
	mScale				= vec2( 1.0f );
	mScaleMax			= vec2( numeric_limits<float>::max() );
	mScaleMin			= vec2( 0.0f );
	mScaleSpeed			= vec2( 0.0067f );
	mScaleSymmetry		= true;
	mScaleTarget		= mScale;
	mScaleThreshold		= vec2( 1.0f );
	mTapDelay			= 0.07;
	mTapPosition		= vec2( numeric_limits<float>::min() );
	mTapTime			= 0.0;
	mTapThreshold		= 15.0f;
	mTouchDelay			= 0.07;
	mTouchTime			= 0.0;

	if ( window != nullptr ) {
		setMask( Area( ivec2( 0 ), window->getSize() ) );
	}
	connect( window, signalPriority );
}
开发者ID:adamwittsell,项目名称:SpoolCinder,代码行数:38,代码来源:TouchUi.cpp

示例6: resetWindowOriginalSize

void ImageRetargetingApp::resetWindowOriginalSize(WindowRef window)
{
    window->setSize(originalTexture.getWidth(), originalTexture.getHeight());
}
开发者ID:cmorace,项目名称:Salient-Image-Retargeting,代码行数:4,代码来源:ImageRetargetingApp.cpp

示例7: create

void View::create (WindowRef & ciWindow, const fs::path & assetFolder)
{
   try
   {
      initGraph (&fps, GRAPH_RENDER_FPS, "Frame Time");
      initGraph (&cpuGraph, GRAPH_RENDER_MS, "CPU Time");

      setSize (ciWindow->getSize());

      nanogui::Window * window = new nanogui::Window (this, "Button demo");
      window->setPosition (ivec2 (15, 15));
      window->setLayout (new GroupLayout());
      /* No need to store a pointer, the data structure will be automatically
         freed when the parent window is deleted */
      new Label (window, "Push buttons", "sans-bold");
      Button * b = new Button (window, "Plain button");
      b->setCallback ([] { cout << "pushed!" << endl; });
      b = new Button (window, "Styled", ENTYPO_ICON_ROCKET);
      b->setBackgroundColor (Colour (0, 0, 255, 25));
      b->setCallback ([] { cout << "pushed!" << endl; });
      new Label (window, "Toggle buttons", "sans-bold");
      b = new Button (window, "Toggle me");
      b->setFlags (Button::ToggleButton);
      b->setChangeCallback ([] (bool state)
      {
         cout << "Toggle button state: " << state << endl;
      });
      new Label (window, "Radio buttons", "sans-bold");
      b = new Button (window, "Radio button 1");
      b->setFlags (Button::RadioButton);
      b = new Button (window, "Radio button 2");
      b->setFlags (Button::RadioButton);
      new Label (window, "A tool palette", "sans-bold");
      Widget * tools = new Widget (window);
      tools->setLayout (new BoxLayout (Orientation::Horizontal,
                                       Alignment::Middle, 0, 6));
      b = new ToolButton (tools, ENTYPO_ICON_CLOUD);
      b = new ToolButton (tools, ENTYPO_ICON_FF);
      b = new ToolButton (tools, ENTYPO_ICON_COMPASS);
      b = new ToolButton (tools, ENTYPO_ICON_INSTALL);
      new Label (window, "Popup buttons", "sans-bold");
      PopupButton * popupBtn = new PopupButton (window, "Popup", ENTYPO_ICON_EXPORT);
      Popup * popup = popupBtn->popup();
      popup->setLayout (new GroupLayout());
      new Label (popup, "Arbitrary widgets can be placed here");
      new CheckBox (popup, "A check box");
      popupBtn = new PopupButton (popup, "Recursive popup", ENTYPO_ICON_FLASH);
      popup = popupBtn->popup();
      popup->setLayout (new GroupLayout());
      new CheckBox (popup, "Another check box");
      window = new nanogui::Window (this, "Basic widgets");
      window->setPosition (ivec2 (200, 15));
      window->setLayout (new GroupLayout());
      new Label (window, "Message dialog", "sans-bold");
      tools = new Widget (window);
      tools->setLayout (new BoxLayout (Orientation::Horizontal,
                                       Alignment::Middle, 0, 6));
      b = new Button (tools, "Info");
      b->setCallback ([&]
      {
         auto dlg = new MessageDialog (this, MessageDialog::Type::Information, "Title", "This is an information message");
         dlg->setCallback ([] (int result)
         {
            cout << "Dialog result: " << result << endl;
         });
      });
      b = new Button (tools, "Warn");
      b->setCallback ([&]
      {
         auto dlg = new MessageDialog (this, MessageDialog::Type::Warning, "Title", "This is a warning message");
         dlg->setCallback ([] (int result)
         {
            cout << "Dialog result: " << result << endl;
         });
      });
      b = new Button (tools, "Ask");
      b->setCallback ([&]
      {
         auto dlg = new MessageDialog (this, MessageDialog::Type::Warning, "Title", "This is a question message", "Yes", "No", true);
         dlg->setCallback ([] (int result)
         {
            cout << "Dialog result: " << result << endl;
         });
      });

	  std::string iconPath = assetFolder.string();
	  iconPath += "/icons";
     
      std::vector<std::pair<int, std::string>> icons = NanoUtil::loadImageDirectory (getContext(), iconPath);
      new Label (window, "Image panel & scroll panel", "sans-bold");
      PopupButton * imagePanelBtn = new PopupButton (window, "Image Panel");
      imagePanelBtn->setIcon (ENTYPO_ICON_FOLDER);
      popup = imagePanelBtn->popup();
      VScrollPanel * vscroll = new VScrollPanel (popup);
      ImagePanel * imgPanel = new ImagePanel (vscroll);
      imgPanel->setImages (icons);
      popup->setFixedSize (ivec2 (245, 150));
      new Label (window, "Selected image", "sans-bold");
      auto img = new ImageView (window);
      img->setFixedSize (ivec2 (40, 40));
//.........这里部分代码省略.........
开发者ID:DanGroom,项目名称:NanoguiBlock,代码行数:101,代码来源:View.cpp

示例8: create

void View::create (WindowRef & ciWindow)
{
   try
   {
      initGraph (&fps, GRAPH_RENDER_FPS, "Frame Time");
      initGraph (&cpuGraph, GRAPH_RENDER_MS, "CPU Time");

      setSize (ciWindow->getSize());

      nanogui::Window * window = new nanogui::Window (this, "Button demo");
      window->setPosition (ivec2 (15, 15));
      window->setLayout (new GroupLayout());
      /* No need to store a pointer, the data structure will be automatically
         freed when the parent window is deleted */
      new Label (window, "Push buttons", "sans-bold");
      Button * b = new Button (window, "Plain button");
      b->setCallback ([] { cout << "pushed!" << endl; });
      b = new Button (window, "Styled", ENTYPO_ICON_ROCKET);
      b->setBackgroundColor (Colour (0, 0, 255, 25));
      b->setCallback ([] { cout << "pushed!" << endl; });
      new Label (window, "Toggle buttons", "sans-bold");
      b = new Button (window, "Toggle me");
      b->setFlags (Button::ToggleButton);
      b->setChangeCallback ([] (bool state)
      {
         cout << "Toggle button state: " << state << endl;
      });
      new Label (window, "Radio buttons", "sans-bold");
      b = new Button (window, "Radio button 1");
      b->setFlags (Button::RadioButton);
      b = new Button (window, "Radio button 2");
      b->setFlags (Button::RadioButton);
      new Label (window, "A tool palette", "sans-bold");
      Widget * tools = new Widget (window);
      tools->setLayout (new BoxLayout (Orientation::Horizontal,
                                       Alignment::Middle, 0, 6));
      b = new ToolButton (tools, ENTYPO_ICON_CLOUD);
      b = new ToolButton (tools, ENTYPO_ICON_FF);
      b = new ToolButton (tools, ENTYPO_ICON_COMPASS);
      b = new ToolButton (tools, ENTYPO_ICON_INSTALL);
      new Label (window, "Popup buttons", "sans-bold");
      PopupButton * popupBtn = new PopupButton (window, "Popup", ENTYPO_ICON_EXPORT);
      Popup * popup = popupBtn->popup();
      popup->setLayout (new GroupLayout());
      new Label (popup, "Arbitrary widgets can be placed here");
      new CheckBox (popup, "A check box");
      popupBtn = new PopupButton (popup, "Recursive popup", ENTYPO_ICON_FLASH);
      popup = popupBtn->popup();
      popup->setLayout (new GroupLayout());
      new CheckBox (popup, "Another check box");
      window = new nanogui::Window (this, "Basic widgets");
      window->setPosition (ivec2 (200, 15));
      window->setLayout (new GroupLayout());
      new Label (window, "Message dialog", "sans-bold");
      tools = new Widget (window);
      tools->setLayout (new BoxLayout (Orientation::Horizontal,
                                       Alignment::Middle, 0, 6));
      b = new Button (tools, "Info");
      b->setCallback ([&]
      {
         auto dlg = new MessageDialog (this, MessageDialog::Type::Information, "Title", "This is an information message");
         dlg->setCallback ([] (int result)
         {
            cout << "Dialog result: " << result << endl;
         });
      });
      b = new Button (tools, "Warn");
      b->setCallback ([&]
      {
         auto dlg = new MessageDialog (this, MessageDialog::Type::Warning, "Title", "This is a warning message");
         dlg->setCallback ([] (int result)
         {
            cout << "Dialog result: " << result << endl;
         });
      });
      b = new Button (tools, "Ask");
      b->setCallback ([&]
      {
         auto dlg = new MessageDialog (this, MessageDialog::Type::Warning, "Title", "This is a question message", "Yes", "No", true);
         dlg->setCallback ([] (int result)
         {
            cout << "Dialog result: " << result << endl;
         });
      });
      std::string iconPath ("E:/Code4/nanofish/projects/qdemos/cinder/ciNanogui/assets/icons");
      std::vector<std::pair<int, std::string>> icons = NanoUtil::loadImageDirectory (getContext(), iconPath);
      new Label (window, "Image panel & scroll panel", "sans-bold");
      PopupButton * imagePanelBtn = new PopupButton (window, "Image Panel");
      imagePanelBtn->setIcon (ENTYPO_ICON_FOLDER);
      popup = imagePanelBtn->popup();
      VScrollPanel * vscroll = new VScrollPanel (popup);
      ImagePanel * imgPanel = new ImagePanel (vscroll);
      imgPanel->setImages (icons);
      popup->setFixedSize (ivec2 (245, 150));
      new Label (window, "Selected image", "sans-bold");
      auto img = new ImageView (window);
      img->setFixedSize (ivec2 (40, 40));
      img->setImage (icons[0].first);
      imgPanel->setCallback ([ &, img, imgPanel, imagePanelBtn] (int i)
      {
//.........这里部分代码省略.........
开发者ID:Reymenta-Visuals,项目名称:ciNanoGui,代码行数:101,代码来源:View.cpp

示例9: getManager

inline ManagerRef getManager(WindowRef id) {
	return getManager(id.get());
}
开发者ID:berkelium,项目名称:berkelium,代码行数:3,代码来源:Impl.hpp

示例10: isValid

bool OculusRift::isValid( const WindowRef& window )
{
	return window && window->isValid();
}
开发者ID:AphexHenry,项目名称:Oculus-Experiments,代码行数:4,代码来源:CinderOculus.cpp

示例11: seamCarvingWindowResize

void ImageRetargetingApp::seamCarvingWindowResize()
{
    if(seamCarvingState != SeamCarvingState::SeamCarving)
    {
        seamCarver->newWidth = seamCarvingWindow->getWidth();
        seamCarver->newHeight = seamCarvingWindow->getHeight();
    }
}
开发者ID:cmorace,项目名称:Salient-Image-Retargeting,代码行数:8,代码来源:ImageRetargetingApp.cpp

示例12: meshWarpingWindowResize

void ImageRetargetingApp::meshWarpingWindowResize()
{
    meshWarpRetargetter->resizeWidth = meshWarpingWindow->getWidth();
    meshWarpRetargetter->resizeHeight = meshWarpingWindow->getHeight();
    if(meshWarpRetargetter->getNumVertices() < 500)
    {
        meshWarpRetargetter->resizeMeshRect(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight);
        meshWarpingState = MeshWarpingState::ShowMeshWarping;
    }
}
开发者ID:cmorace,项目名称:Salient-Image-Retargeting,代码行数:10,代码来源:ImageRetargetingApp.cpp

示例13: drawSeamCarvingWindow

void ImageRetargetingApp::drawSeamCarvingWindow()
{
    gl::clear( Color( 0.f, 0.f, 0.f ) );
    switch(seamCarvingState)
    {
        case SeamCarvingState::ShowImage:
            if( seamCarvedTexture ) {
                gl::draw(seamCarvedTexture);
            }
            break;
            
        case SeamCarvingState::ShowGradient:
            if( gradientTexture ) {
                gl::draw(gradientTexture);
            }
            break;
            
        case SeamCarvingState::SeamCarving:
            if(seamCarvedTexture){
                int dw = seamCarver->newWidth - seamCarvedImage.getWidth();
                int dh = seamCarver->newHeight - seamCarvedImage.getHeight();
                
                if (dw<0 && dh<0){
                    seamCarvingWindow->setSize(seamCarvedTexture.getWidth()-1, seamCarvedTexture.getHeight());
                    seamCarvedImage = seamCarver->deleteVerticalSeam(seamCarvedImage);
                }
                else if (dw<0){
                    seamCarvingWindow->setSize(seamCarvedTexture.getWidth()-1, seamCarvedTexture.getHeight());
                    seamCarvedImage = seamCarver->deleteVerticalSeam(seamCarvedImage);
                }
                else if (dh<0){
                    seamCarvingWindow->setSize(seamCarvedTexture.getWidth(), seamCarvedTexture.getHeight()-1);
                    seamCarvedImage = seamCarver->deleteHorizontalSeam(seamCarvedImage);
                }
                //TODO:: Add Seam
                else if (dw>=0 && dh>=0) {
                    seamCarvingState = SeamCarvingState::ShowImage;
                    seamCarver->stopCarveTimer();
                }
                seamCarvedTexture = gl::Texture(seamCarvedImage);
                gl::draw(seamCarvedTexture);
            }
            
            break;
        case SeamCarvingState::Undefined:
            break;
    }
    seamCarvingParams->draw();
}
开发者ID:cmorace,项目名称:Salient-Image-Retargeting,代码行数:49,代码来源:ImageRetargetingApp.cpp

示例14: resizeMeshRect

void ImageRetargetingApp::resizeMeshRect()
{
    meshWarpRetargetter->startTimer();
    meshWarpRetargetter->resizeMeshRect(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight);
    meshWarpRetargetter->stopTimer();
    meshWarpingState = MeshWarpingState::ShowMeshWarping;
    meshWarpingWindow->setSize(meshWarpRetargetter->resizeWidth , meshWarpRetargetter->resizeHeight);
}
开发者ID:cmorace,项目名称:Salient-Image-Retargeting,代码行数:8,代码来源:ImageRetargetingApp.cpp

示例15: meshWarperResetButtonClick

void ImageRetargetingApp::meshWarperResetButtonClick()
{
    meshWarpingState = MeshWarpingState::ShowImage;
    saliencyImage = saliencySegmentor->getSaliencyMap(originalImage.clone(), SaliencySegmentor::SaliencyMethod::Sobel);
    saliencyImage = saliencySegmentor->getSegmentedSalientImage(saliencyImage);
    saliencyTexture = gl::Texture(saliencyImage);
    
    meshWarpRetargetter->initMesh(originalImage.getWidth(), originalImage.getHeight(), saliencySegmentor);
    meshWarpingWindow->setSize(originalImage.getWidth(), originalImage.getHeight());
}
开发者ID:cmorace,项目名称:Salient-Image-Retargeting,代码行数:10,代码来源:ImageRetargetingApp.cpp


注:本文中的WindowRef类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。