Ejemplo n.º 1
0
void clMLAAPostprocessor::Init( int W, int H )
{
	FPrepassRT = Env->Renderer->CreateRenderTarget( W, H, 1, 8, false, 1 );
	FTmpLineColRT = Env->Renderer->CreateRenderTarget( W, H, 1, 8, false, 1 );
	FTmpAlphaRT = Env->Renderer->CreateRenderTarget( W, H, 1, 8, false, 1 );
	FTmpLinesRT[0] = Env->Renderer->CreateRenderTarget( W, H, 1, 8, false, 1 );
	FTmpLinesRT[1] = Env->Renderer->CreateRenderTarget( W, H, 1, 8, false, 1 );

//	FPrepassShader = Env->Renderer->CreateCustomShader_VS_PS("prepass", "connexity_C8", "USE_DEPTH");
	FPrepassShader->GetShaderProgram()->BindUniforms();
	FPrepassShader->GetShaderProgram()->SetUniformNameVec4Array( "col1", 1, vec4( 1, 2, 4, 8 ) );
	FPrepassShader->GetShaderProgram()->SetUniformNameVec4Array( "col2", 1, vec4( 16, 32, 64, 128 ) );

//	FCalcAlphaShader    = Env->Renderer->CreateCustomShader_VS_PS("calc_alpha_common", "connexity_C4", "");
	FCalcAlphaShader->SetTexture( 0, FTmpLineColRT->GetColorTexture( 0 ), false );

//	FBlendShader        = Env->Renderer->CreateCustomShader_VS_PS("final_blend","connexity_C4", "");
	FBlendShader->SetTexture( 1, FTmpAlphaRT->GetColorTexture( 0 ), false );

//	FLineColShader      = Env->Renderer->CreateCustomShader_VS_PS("line_col_detect_color_optim","connexity_C4", "");

//	FDistanceCalcShader = Env->Renderer->CreateCustomShader_VS_PS("distance_computation_optim","connexity_C4", "");
	FDistanceCalcShader->SetTexture( 0, FTmpLineColRT->GetColorTexture( 0 ), false );
	FThreshold_Uniform = FDistanceCalcShader->GetShaderProgram()->CreateUniform( "threshold" );

	SetImageSize( W, H );
}
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    myThreadShow = new TmyThreadShow(Image1);
    myThreadShow->LoadFile("S:\\IMG_5733.JPG");
    myThreadShow->LoadFile("S:\\IMG_5435.JPG");
    myThreadShow->ShowFile("S:\\IMG_5733.JPG");
return;

    Init();
    LoadFile("S:\\IMG_5733.JPG");
    LoadFile("S:\\IMG_5435.JPG");
//    ShowFile("S:\\IMG_5733.JPG");

return;

    CurrentImage = new TImage(Application);
    NextImage = new TImage(Application);
    SetImageSize(Image1->Width, Image1->Height);
    this->LoadCurrentImage("S:\\IMG_5733.JPG");
    this->LoadNextImage("S:\\IMG_5435.JPG");
    this->ShowCurrentImage(Image1);
return;
                                 
    TmyThread* myThread = new TmyThread(true, "S:\\IMG_5733.JPG", Image1);
//    myThread->OnTerminate = myTerminate;
    myThread->Resume();
}
Ejemplo n.º 3
0
EyeRayGen::EyeRayGen(void)
{
	mFocalPlaneDis = 2.0f;
	SetImageSize(1, 1);
	mPixelOffset[0] = 0;
	mPixelOffset[1] = 0;
}
Ejemplo n.º 4
0
void CEnvelopeWizard::AddDroppedGraphic(int nDragImage, POINT point)
{
	if (!m_pEnvelopeDoc)
		return;

	CAGPage* pPage = m_pEnvelopeDoc->GetPage(0);
	if (!pPage)
		return;

	CAGLayer* pUserLayer = pPage->GetUserLayer();
	if (!pUserLayer)
		return;

	CAGSymImage* pImage = m_pGraphics[nDragImage];
	if (!pImage)
		return;

	CAGSymImage* pNewImage = (CAGSymImage*)pImage->Duplicate();
	if (!pNewImage)
		return;

	SetImageSize(pNewImage, &point);
	
	pUserLayer->AddSymbol(pNewImage);
	GetDocWin()->SymbolUnselect(true);
	GetDocWin()->SymbolSelect(pNewImage);
	GetDocWin()->SymbolInvalidate(pNewImage);
}
Ejemplo n.º 5
0
BOOL COptionTreeItemImage::CreateImageItem(DWORD dwOptions, CSize sImageSizes, int nNumberColumns)
{
    // Declare variables
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
    BOOL bRet = FALSE;

    // Make sure options is not NULL
    if (m_otOption == NULL)
    {
        return FALSE;
    }

    // Create window
    if (!IsWindow(GetSafeHwnd()))
    {
        // -- Create the edit view
        bRet = Create(AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW, ::LoadCursor(NULL, IDC_ARROW)), _T(""), dwStyle, m_rcAttribute, m_otOption->GetCtrlParent(), GetCtrlID());

        // -- Setup window
        if (bRet == TRUE)
        {
            // -- -- Set font
            SetFont(m_otOption->GetNormalFont(), TRUE);

            // -- -- Save options
            m_dwOptions = dwOptions;

            // -- -- Create imagelist
            if (m_imgImages.GetSafeHandle() != NULL)
            {
                m_imgImages.DeleteImageList();
            }
            if (!m_imgImages.Create(sImageSizes.cx, sImageSizes.cy, ILC_COLORDDB | ILC_MASK, 1, OT_IMAGE_MAXIMAGES))
            {
                bRet = FALSE;
            }

            // -- -- Set item height
            SetItemHeight((long) sImageSizes.cy + (OT_IMAGE_IMAGESPACE * 2));

            // -- -- Set number of columns
            SetNumberColumns(nNumberColumns);

            // Set image height
            SetImageSize(sImageSizes);

            // -- -- Set window position
            SetWindowPos(NULL, m_rcAttribute.left, m_rcAttribute.top, m_rcAttribute.Width(), m_rcAttribute.Height(), SWP_NOZORDER | SWP_SHOWWINDOW);

            // -- -- Hide window
            ShowWindow(SW_HIDE);
        }
    }

    return bRet;
}
Ejemplo n.º 6
0
Format7VideoMode::Format7VideoMode(dc1394camera_t* libdc1394camera,
      dc1394video_mode_t libdc1394mode, dc1394color_coding_t libdc1394coding) :
   VideoMode(libdc1394mode)
{
   uint32_t width, height;
   dc1394error_t err;
   err = dc1394_format7_get_max_image_size(libdc1394camera, libdc1394mode, &width, &height);
   if (err != DC1394_SUCCESS)
      throw Error(err, "Cannot get maximum image size for format 7 video mode");
   SetImageSize(width, height);

   SetLibDC1394Coding(libdc1394coding);
}
Ejemplo n.º 7
0
void CEnvelopeWizard::RecalcGraphic()
{
	if (!m_pEnvelopeDoc)
		return;

	CAGSymImage* pNewImage = (CAGSymImage*)m_pEnvelopeDoc->FindSymbolAnywhereByID(IDC_ENVELOPE_PIC_0, 0/*dwFlags*/);
	if (!pNewImage)
		return;

	SetImageSize(pNewImage);

	GetDocWin()->SymbolUnselect(true);
	GetDocWin()->SymbolSelect(pNewImage);
	GetDocWin()->Position(POS_LEFT, POS_BOTTOM, 0/*id*/);
	GetDocWin()->SymbolInvalidate(pNewImage);
}
Ejemplo n.º 8
0
ConventionalVideoMode::ConventionalVideoMode(dc1394camera_t* libdc1394camera,
      dc1394video_mode_t libdc1394mode) :
   VideoMode(libdc1394mode)
{
   uint32_t width, height;
   dc1394error_t err;
   err = dc1394_get_image_size_from_video_mode(libdc1394camera, libdc1394mode, &width, &height);
   if (err != DC1394_SUCCESS)
      throw Error(err, "Cannot get image size from video mode");
   SetImageSize(width, height);

   dc1394color_coding_t libdc1394coding;
   err = dc1394_get_color_coding_from_video_mode(libdc1394camera, libdc1394mode, &libdc1394coding);
   if (err != DC1394_SUCCESS)
      throw Error(err, "Cannot get color coding from video mode");
   SetLibDC1394Coding(libdc1394coding);
}
Ejemplo n.º 9
0
void ezQtImageWidget::on_ButtonResetZoom_clicked()
{
  SetImageSize(1.0f);
}
Ejemplo n.º 10
0
//载入资源位图
void CRealVideoDlg::SetBackImage(int index,CString strName)
{
	SetImage(m_BitmapBack[index], strName);
	SetImageSize(&m_BitmapBack[index], m_szBitmapBack[index]);
}
Ejemplo n.º 11
0
bool ImageDrawingArea::on_expose_event( GdkEventExpose* /*event*/ )
{
    if ( m_pixBuf == NULL )
    {
        return true;
    }

    Glib::Mutex::Lock lock(m_pixBufMutex);

    const int width = m_pixBuf->get_width();
    const int height = m_pixBuf->get_height();
    double validTextureWidth = 1.0;
    double validTextureHeight = 1.0;
    bool useTiledTextures = false;
    GLenum errorno;

    BeginGL();

    SetImageSize( width, height );

    int screenWidth = 0;
    int screenHeight = 0;
    get_window()->get_size( screenWidth, screenHeight );

    // This makes sure that sampling for rendering doesn't occur on the border of pixels.
    const double halfPixelAdjustW = 0.25 / (double)screenWidth;
    const double halfPixelAdjustH = 0.25 / (double)screenHeight;

    glEnable( GL_TEXTURE_2D );
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();

    // center the image
    glTranslated(
        -(m_scaleX - 1.0)/2.0 + halfPixelAdjustW,
        -(m_scaleY - 1.0)/2.0 + halfPixelAdjustH, 0.0);

    // apply mouse-drag shift
    glTranslated(m_shiftX, m_shiftY, 0.0);

    // scale the image
    glScaled(m_scaleX, m_scaleY, 0.0);

    // draw the image
    glBindTexture(GL_TEXTURE_2D, m_imageTextures[0]);

#ifdef _WIN32
    if (m_PBOSupported)
    {
        glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, m_PBO);
        errorno = glGetError();

        if (errorno != GL_NO_ERROR)
        {
            m_PBOSupported = false;
        }
        else
        {
            glBufferDataARB(
                GL_PIXEL_UNPACK_BUFFER_ARB,
                width * height * 4,
                m_pixBuf->get_pixels(),
                GL_STREAM_DRAW_ARB);
            errorno = glGetError();

            if (errorno != GL_NO_ERROR)
            {
                m_PBOSupported = false;
            }
        }
    }
#endif

    glTexImage2D(
        GL_TEXTURE_2D,
        0,
        GL_RGBA,
        width,
        height,
        0,
        GL_BGRA_EXT,
        GL_UNSIGNED_BYTE,
        m_PBOSupported ? NULL : m_pixBuf->get_pixels() );
    errorno = glGetError();

    if (errorno != GL_NO_ERROR)
    {
        // Attempt to fall back and use a power-of-two sized texture.
        // This is for older cards that don't support more arbitrary
        // texture sizes.

#ifdef _WIN32
        if (m_PBOSupported)
        {
            // unbind PBO to use normal texture transfer
            glBindBufferARB( GL_PIXEL_UNPACK_BUFFER_ARB, 0);
        }
#endif

        const int textureWidth = GetMinimumPowerOfTwo(width);
        const int textureHeight = GetMinimumPowerOfTwo(height);
        validTextureWidth = (double)width / textureWidth;
        validTextureHeight = (double)height / textureHeight;

        glTexImage2D(
            GL_TEXTURE_2D,
            0,
            GL_RGBA,
            textureWidth,
            textureHeight,
            0,
            GL_BGRA_EXT,
            GL_UNSIGNED_BYTE,
            NULL );
        errorno = glGetError();
        if (errorno != GL_NO_ERROR)
        {
            // The graphics doesn't seem to support this texture size.
            // Images must be split and then tiled.
            useTiledTextures = true;
        }
        else
        {
            glTexSubImage2D(
                GL_TEXTURE_2D,
                0,
                0,
                0,
                width,
                height,
                GL_BGRA_EXT,
                GL_UNSIGNED_BYTE,
                m_pixBuf->get_pixels() );
            errorno = glGetError();
            if ( errorno != GL_NO_ERROR)
            {
                // Error
            }
        }
    }

    if (useTiledTextures)
    {
        //
        // The image is split into multiple textures.
        //
        const int bytesPerPixel = 4;
        const int tileSize = 1024;
        int horizResidual = width % tileSize;
        int vertResidual = height % tileSize;
        int numHorizTextures = width / tileSize + (horizResidual > 0);
        int numVertTextures = height / tileSize + (vertResidual > 0);

        unsigned char *tileBuffer = new unsigned char[tileSize * tileSize * bytesPerPixel];

        for (int tileY = 0; tileY < numVertTextures ; tileY++)
        {
            for (int tileX = 0; tileX < numHorizTextures; tileX++)
            {
                int subTexHeight = tileSize;
                if ( tileY == numVertTextures - 1 && vertResidual > 0)
                {
                    subTexHeight = vertResidual;
                }

                int subTexWidth = tileSize;
                if (tileX == numHorizTextures - 1 && horizResidual > 0)
                {
                    subTexWidth = horizResidual;
                }

                // copy image buffer to the tile
                for (int line = 0; line < subTexHeight; line++)
                {
                    memcpy(
                        tileBuffer + line * tileSize * bytesPerPixel,
                        m_pixBuf->get_pixels() + ((line + tileSize * tileY) * width + tileSize * tileX) * bytesPerPixel,
                        subTexWidth * bytesPerPixel);
                }

                const unsigned int texId = tileY * numHorizTextures + tileX;
                if (texId >= sk_maxNumTextures)
                {
                    continue;
                }

                glBindTexture( GL_TEXTURE_2D, m_imageTextures[ texId] );
                glTexImage2D(
                    GL_TEXTURE_2D,
                    0,
                    GL_RGBA,
                    tileSize,
                    tileSize,
                    0,
                    GL_BGRA_EXT,
                    GL_UNSIGNED_BYTE,
                    tileBuffer );

                const double validTileWidth = (double)subTexWidth/tileSize;
                const double validTileHeight = (double)subTexHeight/tileSize;

                const double x_begin = (double)tileSize / width * tileX;
                const double x_end = (double)tileSize / width * ( tileX + validTileWidth);
                const double y_begin = 1.0 - (double)tileSize / height * ( tileY + validTileHeight);
                const double y_end = 1.0 - (double)tileSize / height * tileY;

                glBegin( GL_QUADS );

                glTexCoord2d(0.0, validTileHeight);
                glVertex2d(x_begin, y_begin);

                glTexCoord2d(validTileWidth, validTileHeight);
                glVertex2d(x_end, y_begin);

                glTexCoord2d(validTileWidth, 0.0);
                glVertex2d(x_end, y_end);

                glTexCoord2d(0.0, 0.0);
                glVertex2d(x_begin, y_end);

                glEnd();
            }
        }

        delete [] tileBuffer;
    }
    else
    {
        // Just one texture
        glBegin( GL_QUADS );

        glTexCoord2d(0.0, validTextureHeight);
        glVertex2d(0.0, 0.0);

        glTexCoord2d(validTextureWidth, validTextureHeight);
        glVertex2d(1.0, 0.0);

        glTexCoord2d(validTextureWidth, 0.0);
        glVertex2d(1.0, 1.0);

        glTexCoord2d(0.0, 0.0);
        glVertex2d(0.0, 1.0);

        glEnd();
    }

    if ( m_showCrosshair )
    {
        const double aspectRatio = (double)width/height;
        glTranslated(0.5, 0.5, 0.0);
        glScaled(1.0, aspectRatio, 0.0);
        ShowCrosshair();
    }

    if (get_gl_window()->is_double_buffered())
    {
        get_gl_window()->swap_buffers();
    }
    else
    {
        glFlush();
    }

    EndGL();

    lock.release();

    m_displayedFrameRate.NewFrame();

    return true;
}
Ejemplo n.º 12
0
//载入资源位图
void CMyBtn::SetBackImage(int index,CString strName)
{
	SetImage(m_BitmapBack[index], strName);
	SetImageSize(&m_BitmapBack[index], m_szBitmapBack[index]);
}
Ejemplo n.º 13
0
void CEnvelopeWizard::CreateEnvelope(CAGDoc** ppAGDoc)
{
	m_pEnvelopeDoc = new CAGDoc();

	// Let the caller take control over this document
	if (ppAGDoc)
		*ppAGDoc = m_pEnvelopeDoc;
	if (!m_pEnvelopeDoc)
		return;
	
	m_pEnvelopeDoc->SetPortrait(m_PageSize.cx <= m_PageSize.cy);
	m_pEnvelopeDoc->SetDocType(DOC_ENVELOPE);
	m_pEnvelopeDoc->SetFileName(CString("Untitled"));
	m_pEnvelopeDoc->SetModified(true);

	CAGPage* pPage = new CAGPage(m_PageSize.cx, m_PageSize.cy);
	if (!pPage)
		return;

	m_pEnvelopeDoc->AddPage(pPage);

	int nLayers = 2;
	for (int j = 0; j < nLayers; j++)
		pPage->AddLayer(new CAGLayer());

	CAGLayer* pUserLayer = pPage->GetUserLayer();
	if (!pUserLayer)
		return;

	CAGLayer* pMasterLayer = pPage->GetMasterLayer();
	if (!pUserLayer)
		return;

	m_nMaxImageSize = m_PageSize.cy / 2;

	m_pEnvelopePicture->GetPictureList()->DrawListViewThumbnails();

	// Add the Background Item
	CAGSymGraphic* pBackground = new CAGSymRectangle();
	if (pBackground)
	{
		RECT BackgroundRect;
		::SetRect(&BackgroundRect, 0, 0, m_PageSize.cx, m_PageSize.cy);
		pBackground->SetDestRect(BackgroundRect);
		pBackground->SetID(IDR_ENVELOPE_BACKGROUND);
		pBackground->SetFillColor(RGB(240,240,255));
		pBackground->SetFillColor2(RGB(255,255,255));
		pBackground->SetFillType(FT_Solid);
		pBackground->SetHidden(true);
		pUserLayer->AddSymbol(pBackground);
	}

	int xCenter = m_PageSize.cx / 2;
	int yCenter = m_PageSize.cy / 2;
	RECT rMargins = { INCHES(0.375), INCHES(0.375), m_PageSize.cx - INCHES(0.375), m_PageSize.cy - INCHES(0.375)};

	// Add the Send Address Text Item
	CAGSymText* pSendAddr = new CAGSymText(ST_TEXT);
	if (pSendAddr)
	{
		RECT SendRect;
		SendRect.left   = xCenter - (INCHES(1.75)/2);
		SendRect.top    = yCenter - (INCHES(1)/2);
		SendRect.right  = SendRect.left + INCHES(3.0);
		SendRect.bottom = SendRect.top + INCHES(1.1);
		pSendAddr->Create(SendRect);

		pSendAddr->SetID(IDR_ENVELOPE_SEND);
		SetAddressText(pSendAddr, m_strSendAddress);
		pSendAddr->SelectAll(false);
		pSendAddr->SetHorzJust(eFlushLeft);
		pSendAddr->SetVertJust(eVertTop);
		pSendAddr->SetEmphasis(false, false, false);
		pUserLayer->AddSymbol(pSendAddr);
	}

	// Add the Return Address Text Item
	CAGSymText* pReturnAddr = new CAGSymText(ST_TEXT);
	if (pReturnAddr)
	{
		RECT ReturnRect;
		ReturnRect.left   = rMargins.left;
		ReturnRect.top    = rMargins.top;
		ReturnRect.right  = ReturnRect.left + INCHES(3.0);
		ReturnRect.bottom = ReturnRect.top + INCHES(1.1);
		pReturnAddr->Create(ReturnRect);

		pReturnAddr->SetID(IDR_ENVELOPE_RETURN);
		SetAddressText(pReturnAddr, m_strReturnAddress);
		pReturnAddr->SelectAll(false);
		pReturnAddr->SetHorzJust(eFlushLeft);
		pReturnAddr->SetVertJust(eVertTop);
		pReturnAddr->SetEmphasis(false, false, false);
		pUserLayer->AddSymbol(pReturnAddr);
	}

	// Add the first image to the document
	CAGSymImage* pImage = m_pGraphics[0];
	if (!pImage)
		return;

	CAGSymImage* pNewImage = (CAGSymImage*)pImage->Duplicate();
	if (!pNewImage)
		return;

	SetImageSize(pNewImage);

	pNewImage->SetID(IDC_ENVELOPE_PIC_0);

	pUserLayer->AddSymbol(pNewImage);
	GetDocWin()->SymbolUnselect(true);
	GetDocWin()->SymbolSelect(pNewImage);
	GetDocWin()->Position(POS_LEFT, POS_BOTTOM, 0/*id*/);
}
Ejemplo n.º 14
0
void COptionsDlg::SetImageSize(CSize size)
{
    SetImageSize(size.cx, size.cy);
}