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


C++ GraphicsDevice::WState方法代码示例

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


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

示例1: device


//.........这里部分代码省略.........
	  {
	    DFloat xSizeValue;
	    e->AssureFloatScalarKW( xSizeIx, xSizeValue);
	    bool success = actDevice->SetXPageSize( xSizeValue 
						    * (e->KeywordSet(inchesIx) ? 100. * GSL_CONST_MKSA_INCH : 1.)
						    );
	    if( !success)
	      e->Throw( "Current device does not support keyword XSIZE.");
	  } 
      }

      // YSIZE 
      {
        static int ySizeIx = e->KeywordIx( "YSIZE");
        BaseGDL* ySizeKW = e->GetKW( ySizeIx);
        if( ySizeKW != NULL)
	  {
	    DFloat ySizeValue;
	    e->AssureFloatScalarKW( ySizeIx, ySizeValue);
	    bool success = actDevice->SetYPageSize( ySizeValue
						    * (e->KeywordSet(inchesIx) ? 100. * GSL_CONST_MKSA_INCH : 1.)
						    );
	    if( !success)
	      e->Throw( "Current device does not support keyword YSIZE.");
	  } 
      }
    }

    // SCALE_FACTOR 
    {
      static int scaleIx = e->KeywordIx( "SCALE_FACTOR");
      BaseGDL* scaleKW = e->GetKW( scaleIx);
      if( scaleKW != NULL)
	{
	  DFloat scaleValue;
	  e->AssureFloatScalarKW( scaleIx, scaleValue);
	  bool success = actDevice->SetScale( scaleValue);
	  if( !success)
	    e->Throw( "Current device does not support keyword SCALE.");
	} 
    }

    // COLOR 
    {
      // TODO: turn off with COLOR=0?
      static int colorIx = e->KeywordIx( "COLOR");
      BaseGDL* colorKW = e->GetKW( colorIx);
      if( colorKW != NULL)
	{
	  DLong colorValue;
	  e->AssureLongScalarKW( colorIx, colorValue);
	  bool success = actDevice->SetColor(colorValue);
	  if( !success) e->Throw( "Current device does not support keyword COLOR.");
	} 
    }

    // ENCAPSULATED 
    {
      static int encapsulatedIx = e->KeywordIx( "ENCAPSULATED");
      BaseGDL* encapsulatedKW = e->GetKW( encapsulatedIx);
      if( encapsulatedKW != NULL)
	{
	  bool success;
	  if ((*e->GetKWAs<DIntGDL>(encapsulatedIx))[0] == 0)
	    success = actDevice->SetEncapsulated(false);
	  else
	    success = actDevice->SetEncapsulated(true);
	  if (!success) e->Throw( "Current device does not support keyword ENCAPSULATED.");
	} 
    }
    //BITS_PER_PIXEL
    {
      static int bppIx = e->KeywordIx( "BITS_PER_PIXEL");
      BaseGDL* bppKW = e->GetKW( bppIx);
      if( bppKW != NULL)
	{
	  bool success;
      
	  success = actDevice->SetBPP((*e->GetKWAs<DIntGDL>(bppIx))[0]);
	  if (!success) e->Throw( "Current device does not support keyword BITS_PER_PIXEL.");
	} 
    }    
    // COPY
    {
      static int copyIx = e->KeywordIx("COPY");
      if( e->KeywordPresent( copyIx)) 
      {
       DLongGDL* parameters=e->GetKWAs<DLongGDL>(copyIx);
       if (parameters->N_Elements() > 7 || parameters->N_Elements() < 6) 
         e->Throw("Keyword array parameter COPY must have from 6 to 7 elements.");
// WRONG!! device number may also be a gui number in some cases... HAVING TWO X11-like GRAPHIC DEVICES IS NOT GOOD AT ALL! FIXME!
       if (parameters->N_Elements() == 7) {
         if (!actDevice->WState((*parameters)[6])) e->Throw("Window number "+i2s((*parameters)[6])+" out of range or no more windows or known bug with widgets");
       }
       bool doesTheCopy=actDevice->CopyRegion(parameters);
       if (!doesTheCopy) e->Throw( "Keyword COPY not allowed for call to: DEVICE");
       }
    }
 
  }
开发者ID:ezhangle,项目名称:GNU-Data-Language-0.9.6,代码行数:101,代码来源:plotting_device.cpp


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