Las llamadas del cliente a la biblioteca de gráficos no provocan directamente la representación real, sino que hacen uso de una indirección extensiva a los recursos, administrados (y por lo tanto retenidos ) por la biblioteca de gráficos . [2] No excluye el uso de doble búfer . [3]
El modo inmediato es un enfoque alternativo. Históricamente, el modo retenido ha sido el estilo dominante en las bibliotecas de GUI ; [4] sin embargo, ambos pueden coexistir en la misma biblioteca y no son necesariamente excluyentes en la práctica. [5]
Descripción general
En el modo retenido, las llamadas del cliente no provocan directamente la representación real, sino que actualizan un modelo interno abstracto (normalmente una lista de objetos) que se mantiene dentro del espacio de datos de la biblioteca. Esto permite que la biblioteca optimice el momento en que se lleva a cabo la representación real junto con el procesamiento de los objetos relacionados. [2]
Algunas técnicas para optimizar la representación incluyen:
^ Jin, Zhefan (mayo de 2006). "Representación de gráficos paralelos en modo retenido para entornos de diseño cooperativo". 2006, 10.ª Conferencia internacional sobre trabajo cooperativo con soporte informático en diseño . págs. 1–6. doi :10.1109/CSCWD.2006.253142. ISBN 1-4244-0164-X.S2CID 5825966 .
^ abc Quinn Radich (30 de mayo de 2018). «Modo retenido frente a modo inmediato». Aplicaciones Win32 . Microsoft . Consultado el 21 de diciembre de 2019 .
^ stevewhims. "Consultas de predicción: aplicaciones Win32". learn.microsoft.com . Consultado el 9 de diciembre de 2022 .
^ Feldmeier, Alex (12 de octubre de 2013). "Programación de GUI". Informe técnico de ingeniería de software y ciencias de la computación de UWP . Consultado el 22 de diciembre de 2019. El modo retenido ha sido el estándar durante años . Casi todas las GUI están en modo retenido.
^ QuinnRadich. "Modo retenido versus modo inmediato: aplicaciones Win32". docs.microsoft.com . Consultado el 21 de agosto de 2020 .
^ "Almacenamiento en doble búfer en OpenGL" . Consultado el 7 de mayo de 2020 .
^ "Almacenamiento en búfer doble de DirectX" . Consultado el 7 de mayo de 2020 .
^ "Eliminación de rostros en OpenGL" . Consultado el 7 de mayo de 2020 .
^ "Eliminación de oclusión de DirectX" . Consultado el 7 de mayo de 2020 .
^ "OpenGL" . Consultado el 4 de mayo de 2020 .
^ "Compatibilidad con controladores OpenGL". NVIDIA Developer . 2013-08-19 . Consultado el 2020-08-21 .
^ "OpenGL: la base de la industria para gráficos de alto rendimiento". The Khronos Group . 19 de julio de 2011 . Consultado el 21 de agosto de 2020 .
^ Weiher, Marcel (24 de febrero de 2017). Ajuste del rendimiento de iOS y macOS: Cocoa, Cocoa Touch, Objective-C y Swift. Addison-Wesley Professional. ISBN9780133085532. Recuperado el 22 de diciembre de 2019. SceneKit y SpriteKit, por otro lado, son API de modo retenido.