Método IDXGIOutputDuplication::GetFrameDirtyRects (dxgi1_2.h)
Obtiene información sobre rectángulos sucios para el marco de escritorio actual.
Sintaxis
HRESULT GetFrameDirtyRects(
[in] UINT DirtyRectsBufferSize,
[out] RECT *pDirtyRectsBuffer,
[out] UINT *pDirtyRectsBufferSizeRequired
);
Parámetros
[in] DirtyRectsBufferSize
Tamaño en bytes del búfer que el autor de la llamada pasó al parámetro pDirtyRectsBuffer .
[out] pDirtyRectsBuffer
Puntero a una matriz de estructuras RECT que identifica las regiones de rectángulo sucio para el marco de escritorio.
[out] pDirtyRectsBufferSizeRequired
Puntero a una variable que recibe el número de bytes que GetFrameDirtyRects necesita almacenar información sobre las regiones desfasadas en el búfer en pDirtyRectsBuffer.
Para obtener más información sobre cómo devolver el tamaño de búfer necesario, vea Comentarios.
Valor devuelto
GetFrameDirtyRects devuelve:
- S_OK si recuperó correctamente información sobre rectángulos sucios.
- DXGI_ERROR_ACCESS_LOST si la interfaz de duplicación de escritorio no es válida. Normalmente, la interfaz de duplicación de escritorio no es válida cuando se muestra un tipo diferente de imagen en el escritorio. Algunos ejemplos de esta situación son:
- Conmutador de escritorio
- Cambio de modo
- Cambiar de DWM activado, DWM desactivado u otra aplicación de pantalla completa
- DXGI_ERROR_MORE_DATA si el búfer que proporcionó la aplicación que realiza la llamada no era lo suficientemente grande.
- DXGI_ERROR_INVALID_CALL si la aplicación llamó a GetFrameDirtyRects sin poseer la imagen de escritorio.
- E_INVALIDARG si uno de los parámetros de GetFrameDirtyRects es incorrecto; por ejemplo, si pDirtyRectsBuffer es NULL.
- Posiblemente otros códigos de error que se describen en el tema DXGI_ERROR .
Comentarios
GetFrameDirtyRects almacena un valor de tamaño en la variable en pDirtyRectsBufferSizeRequired. Este valor especifica el número de bytes que GetFrameDirtyRects necesita para almacenar información sobre las regiones desfasadas. Puede usar este valor en las situaciones siguientes para determinar la cantidad de memoria que se va a asignar para futuros búferes que se pasan a pDirtyRectsBuffer:
- GetFrameDirtyRects produce un error DXGI_ERROR_MORE_DATA porque el búfer no es lo suficientemente grande.
- GetFrameDirtyRects proporciona un búfer que es mayor de lo necesario. El valor de tamaño devuelto en pDirtyRectsBufferSizeRequired informa al autor de la llamada cuánto espacio de búfer se usó en realidad en comparación con cuánto espacio de búfer asignó el autor de la llamada y se especificó en el parámetro DirtyRectsBufferSize .
El búfer contiene la lista de RECTsucios para el marco actual.
Requisitos
Cliente mínimo compatible | Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | dxgi1_2.h |
Library | Dxgi.lib |