Pergunta : Região visble de BitBlt

Eu criei uma aplicação do desenho das sortes, geralmente quando o usuário (mim) faz a tiragem do padrão do sa sua será aproximadamente 8000 objetos separados de GraphicsPath na tela e uma imagem de fundo bitmap.

To indica o desenho que eu usei a classe de BufferedGraphics para a velocidade using o bitblt. código do

The para extrair o m_BGContext confidencial do image

como o m_BufferedGraphics confidencial de BufferedGraphicsContext
como m_ImageVisible confidencial de BufferedGraphics
como bôoleano = m_BufferedGraphics do
do

m_BufferedGraphics.Dispose da tração de True

() () = m_BGContext.Allocate secundários confidenciais (m_PicBoxGraphics, retângulo novo (0, 0, PictureBox1.Width, PictureBox1.Height))o

se m_ImageVisible extremidade If

m_BufferedGraphics.Graphics.Smoothin de Then
m_BufferedGraphics.Graphics.DrawImage (m_img, 0, 0, PictureBox1.Width, PictureBox1.Height)/>gMode = SmoothingMode.AntiAlias
m_BufferedGraphics.Graphics.CompositingQuality = de

End Sub

The de CompositingQuality.HighQuality

m_MyDrawing.Draw (m_BufferedGraphics.Graphics) problema eu tenho é quando eu zumbo o desenho que inteiro meu uso da memória está indo acima e retardando o desempenho, se eu zumbo para fora ele vou para trás ao normal tão nenhuns escapes de memória, assim que a pergunta é. Faz qualquer um sabem eu posso bitblt somente região viewable/visível do desenho. Eu tinha-lhe falado um colaborador e de Java embora têm algo chamado um viewport que fizesse o que eu quis se eu estava em Java, mas eu não poderia encontrar muito sobre ele e mesmo se havia um equivalente dentro. Rede assim não sure se este era um ganso selvagem - perseguir, apenas pensar que eu mencionaria it.

Anyway se este faz o sentido a qualquer um, agradeço adiantado para todo o help.

Oh e eu chanfro o uso WPF que que eu penso seria melhor mas tem que ser GDI+ e eu chanfro a gota a qualidade do

Andy
das considerações de drawing.

Kind class= do

Resposta : Região visble de BitBlt

Sem ver nenhum código isto será consideravelmente resistente responder.  Como é você “que zumbe”?

A resposta genérica é que VOCÊ computa a região visível sob a forma de um retângulo baseado em SEU algoritmo zumbindo e então usa GraphicsPath.GetBounds () para cada GraphicsPath e vê se o rectanlge resultante é visível using Rectangle.Intersect ().  Em caso afirmativo, então você extrai que GraphicsPath no seu “rende” o método…
Outras soluções  
 
programming4us programming4us