Artigo: 262127 - Última revisão: segunda-feira, 12 de Fevereiro de 2007 - Revisão: 2.4 INFO: Melhorar o desempenho do controlador do Windows CE vídeo: operações de desenho livre
Nesta páginaSumárioA maior parte dos controladores de vídeo Windows CE utilizam GPE (gráficos primitivo Engine) para fornecer processamento primitivos de controlador de visualização predefinida. O método GPE::Line desenha linhas na superfície de destino utilizando os parâmetros fornecidos no GPELineParms e EGPEPhase estruturas de dados. Este artigo define as estruturas de dados GPELineParms e EGPEPhase e descreve como GPE desenha uma linha. O desenho predefinidas fornecido pelo GPE poderão ser substituído no controlador de visualização por acelerações de emulação de software ou por acelerações de hardware original, como discutido no capítulo Windows CE 2.12 Device Driver Kit sobre controladores de visualização. Mais InformaçãoGPELineParms EstruturaGPELineParms é uma estrutura. GPELineParms é definida neste directório de Platform Builder:Public\Common\Oak\Inc GPELineParms é utilizado por GPE e o controlador de visualização para controlar o desenho de linha. Alguns dos parâmetros na estrutura directamente provêm da aplicação ou o contexto de dispositivo actual. Os restantes são calculados pelo GPE.mistura GPELineParms é o valor ROP2. É composta por dois bytes, um ROP2 marca e um ROP2 espaço. O valor de cada bit no estilo escolhe entre dois bytes em pParms-> mistura valor. GPELineParms iDir é o número octant para a linha (um dos valores de 8, pelo algoritmo Bresenham). Octant eixo Y de X-Dir-Dir 0 X-principal + 1 + 1 principais de S 1 + 1 + 1 Y-principal 2-1 + 1 X 3-principais-1 + 1 4 X-principais-1-1 Y 5-principais-1-1 Y 6-principais-1 + 1 X 7-principais-1 + 1 EGPEPHASE enumerados tipoEGPEPHASE é um tipo enumerado. EGPEPHASE é definida no directório de Platform Builder seguinte:Public\Common\Oak\Inc Processamento de desenho livrePreparar a faseDesenho de linha começa quando uma aplicação chama o método de polilinha. GDI processa a chamada ao método polilinha. GDI valida que existem pelo menos dois vértices e que o estilo de linha não é nulo. GDI, em seguida, chama a função GPE DrvStrokePath , ou para uma caneta grande, a função DrvFillPath . Quando o GDI invoca a função de membro GPE, transmitir ao longo de informações do contexto de dispositivo:
GPE, em seguida, chama linha função o controlador de visualização, passar in a GPELineParms e passando numa definição EGPEPHASE gpePrepare . O controlador examina as propriedades da linha que está a ser desenhada. O controlador, em seguida, escolhe se pretende utilizar a função GPE EmulatedLine ou processar a linha com própria função acelerada. Antes de seleccionar uma função acelerada, o controlador tem de verificar se o hardware pode processar o estilo de linha e ROP. No controlador de visualização S3Trio64 (no directório Platform Builder Platform\Cepc\Drivers\Display\S3trio64), o controlador define o apontador de função por predefinição para EmulatedLine mas escolhe a aceleração de hardware para linhas que estão na memória de vídeo e utilizar ROP 0x0D0D. O código de exemplo seguinte ilustra este: Desenho de cada segmento de gestão de DrvStrokePathDepois de determinar função de desenho de linha o controlador, a função DrvStrokePath executa os seguintes ciclos. A ordenação destes ciclos foi concebida para maximizar o recorte de hardware. Normalmente, um caminho pertencem a apenas um destes rectângulos recorte.
É importante ter em atenção que para linhas diagonais, os valores no parâmetro dM , parâmetro de dN , e erro termo llgamma campos de GPELineParms contêm informações de sub-pixels. Esta informação deve ser utilizada quando regista a inicialização do desenho de linha de hardware. Caso contrário, as linhas diagonais são cortadas incorrectamente são desenhadas. Este efeito pode ser bastante visível quando mover uma janela através de outra janela que contém uma linha diagonal. Na fase de preparação, o controlador efectua uma inspecção geral dos parâmetros de linha para determinar se ele pode acelerar. Quando a função de aceleração é chamada, o controlador necessitar de efectuar a validação adicional. Isto acontece porque quando acelerado função o controlador é chamada, destina-se um segmento de caminho específico, cortado para uma região de recorte específico. O controlador necessita assegurar que, por exemplo, o comprimento do segmento de linha não provocarão respectivos registos de hardware para capacidade excedida. Por exemplo, no controlador S3Trio64, este nível adicional de verificação é efectuada no código que se segue. Porque os valores dM e dN originalmente são expressos em 1/16ths de pixels, declive os iteradores hardware do dispositivo tem de ser capaz de manter estes comprimentos para qualquer segmento de linha é desenhado. Uma grande quantidade de hardware foi concebida para conseguir desenhar uma linha diagonal no ecrã inteiro mas espera dM e valores dN (ou equivalentes) para ser expressa em pixels. Uma vez que GPE utiliza sub-pixels precisão, estes contadores ter quatro (4) mais bits. Para linhas curtas, não se trata de um problema mas para linhas extensas estes valores podem excesso os registos que resulta numa linhas apenas zinging desactivado para algumas extremidade do ecrã ou mesmo moldar à volta de algumas vezes. Apesar das linhas diagonais são comuns, linhas diagonais longo são extremamente raras sendo o tempo decorrido para compor linhas diagonais tempo utilizando a função EmulatedLine minúsculas. Concluir faseDepois da função DrvStrokePath concluída desenho de linha, DrvStrokePath chama novamente linha função o controlador desta vez transmitir o conjunto de EGPEphase para gpeComplete . O controlador deve limpar qualquer estado de desenho de linha necessário o hardware neste momento.A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 262127
(http://support.microsoft.com/kb/262127/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo