Compartilhar via


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