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 BufferedGraphicsContext classe. Cada aplicativo tem seu próprio padrão BufferedGraphicsContext 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 padrão

  • Defina a Current propriedade, 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 trata de toda a alocação e distribuição de memória para as instâncias padrão BufferedGraphicsContext.

    Para aplicativos graficamente intensivos, como animação, às vezes você pode melhorar o desempenho usando um dedicado BufferedGraphicsContext 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 elementos gráficos em buffer associados ao aplicativo, embora a memória consumida pelo aplicativo seja maior.

Para criar um BufferedGraphicsContext dedicado

  • Declare e crie uma nova instância da BufferedGraphicsContext classe, 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()
    
    

Consulte também