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 ); }
//--------------------------------------------------------------------------- __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(); }
EyeRayGen::EyeRayGen(void) { mFocalPlaneDis = 2.0f; SetImageSize(1, 1); mPixelOffset[0] = 0; mPixelOffset[1] = 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); }
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; }
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); }
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); }
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); }
void ezQtImageWidget::on_ButtonResetZoom_clicked() { SetImageSize(1.0f); }
//载入资源位图 void CRealVideoDlg::SetBackImage(int index,CString strName) { SetImage(m_BitmapBack[index], strName); SetImageSize(&m_BitmapBack[index], m_szBitmapBack[index]); }
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; }
//载入资源位图 void CMyBtn::SetBackImage(int index,CString strName) { SetImage(m_BitmapBack[index], strName); SetImageSize(&m_BitmapBack[index], m_szBitmapBack[index]); }
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*/); }
void COptionsDlg::SetImageSize(CSize size) { SetImageSize(size.cx, size.cy); }