Como: Gerenciar manualmente gráficos em buffer

Para cenários de buffer duplo mais avançados, você pode usar as classes do .NET Framework para implementar sua própria lógica de buffer duplo. A classe responsável por alocar e gerenciar buffers gráficos individuais é a classe BufferedGraphicsContext. Cada aplicativo tem seu próprio BufferedGraphicsContext padrão que gerencia todo o buffer duplo padrão para esse aplicativo. Você pode recuperar uma referência a essa instância chamando o Current.

Para obter uma referência ao BufferedGraphicsContext predefinido

  • Defina a propriedade Current, conforme mostrado no exemplo de código a seguir.

    BufferedGraphicsContext myContext;
    myContext = BufferedGraphicsManager.Current;
    
    Dim myContext As BufferedGraphicsContext
    myContext = BufferedGraphicsManager.Current
    
    

    Observação

    Você não precisa chamar o método Dispose na referência BufferedGraphicsContext que você recebe da classe BufferedGraphicsManager. O BufferedGraphicsManager lida com toda a alocação e distribuição de memória para instâncias de BufferedGraphicsContext padrão.

    Para aplicativos graficamente intensivos, como animação, às vezes você pode melhorar o desempenho usando um BufferedGraphicsContext dedicado em vez do BufferedGraphicsContext fornecido pelo BufferedGraphicsManager. Isso permite que você crie e gerencie buffers gráficos individualmente, sem incorrer na sobrecarga de desempenho do gerenciamento de todos os outros gráficos em buffer associados ao seu aplicativo, embora a memória consumida pelo aplicativo seja maior.

Para criar um BufferedGraphicsContext dedicado

  • Declare e crie uma nova instância da classe BufferedGraphicsContext, conforme mostrado no exemplo de código a seguir.

    BufferedGraphicsContext myContext;
    myContext = new BufferedGraphicsContext();
    // Insert code to create graphics here.
    // On a non-default BufferedGraphicsContext instance, you should always
    // call Dispose when finished.
    myContext.Dispose();
    
    Dim myContext As BufferedGraphicsContext
    myContext = New BufferedGraphicsContext
    ' Insert code to create graphics here.
    ' On a nondefault BufferedGraphicsContext instance, you should always 
    ' call Dispose when finished.
    myContext.Dispose()
    
    

Ver também