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 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 padrão

  • 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
    
    

    Nota

    Você não precisa chamar o método Dispose na referência BufferedGraphicsContext que você recebe da classe BufferedGraphicsManager. O BufferedGraphicsManager manipula 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 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 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()
    
    

Consulte também