MX2008003406A - Efectos visuales extensibles en contenido activo en interfaces de usuario. - Google Patents

Efectos visuales extensibles en contenido activo en interfaces de usuario.

Info

Publication number
MX2008003406A
MX2008003406A MX2008003406A MX2008003406A MX2008003406A MX 2008003406 A MX2008003406 A MX 2008003406A MX 2008003406 A MX2008003406 A MX 2008003406A MX 2008003406 A MX2008003406 A MX 2008003406A MX 2008003406 A MX2008003406 A MX 2008003406A
Authority
MX
Mexico
Prior art keywords
effect
visual element
further characterized
effects
output
Prior art date
Application number
MX2008003406A
Other languages
English (en)
Inventor
Adam M Smith
Sriram Subramanian
Robert A Wlodarczyk
Biliana K Kaneva
Eduardo M Maia
Patrick J Sweeney
Rahul V Patil
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2008003406A publication Critical patent/MX2008003406A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Materials For Medical Uses (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Circuits (AREA)

Abstract

Metodos y sistemas para aplicar efectos visuales a contenido activo, tal como botones, menus desplegables, video, campos de edicion, etc., en donde se retiene la interactividad del contenido activo. Ademas, la presente invencion provee un mecanismo para que desarroladores construyan nuevos efectos visuales y los apliquen al contenido activo.

Description

EFECTOS VISUALES EXTENSIBLES EN CONTENIDO ACTIVO EN INTERFACES DE USUARIO Antecedentes de la Invención Algunas veces, los desarrolladores de aplicaciones desean implementar las interfaces de usuarios que contienen elementos únicos que distinguen la interfaz de usuario de otras interfaces de usuario y/o para mejorar la experiencia del usuario cuando el usuario está trabajando con la aplicación a través de la interfaz de usuario. Una manera en la que el desarrollador podría personalizar la interfaz de usuario es crear efectos visuales que ocurren para señalar un cambio de interfaz de usuario o modificar un elemento de una interfaz de usuario. Sin embargo, las plataformas actuales no soportan la aplicación de un efecto visual en el contenido que se usa como parte de una interfaz de usuario. Breve Descripción de la Invención Lo siguiente presenta un resumen simplificado de la descripción para proveer un entendimiento básico al lector. Este resumen no es un panorama extenso de la descripción y no identifica elementos claves/críticos de la invención o delinea el alcance de la invención. Su único propósito es presentar algunos conceptos descritos en una forma simplificada como una introducción a la descripción más detallada que se presenta más adelante.
La presente descripción presenta métodos y sistemas para aplicar efectos visuales para activar el contenido, tales como botones, menús desplegables (comboboxes), video, campos de edición, etc., en donde la interactividad del contenido activo se retiene como resultado. Además, la presente descripción provee un mecanismo para que los desarrolladores construyan nuevos efectos visuales y los apliquen al contenido activo. Dichos efectos visuales, por ejemplo, incluyen efecto borroso, brillo, flash, explosión, expandir, comprimir, difuminar, gris, remolino, onda, combinar, brillos, o cualquier otro efecto visual que pueda aplicarse al contenido activo. Muchas de las características se entenderán más fácilmente por referencia a la siguiente descripción detallada considerada en conjunto con los dibujos que la acompañan. Breve Descripción de las Figuras La presente descripción se entenderá mejor a partir de la siguiente descripción detallada leída tomando en cuenta los dibujos que la acompañan, en las que: La figura 1 es un diagrama de bloque que muestra un objeto de efecto ejemplar. La figura 2 es un diagrama de bloque que muestra un objeto de efecto ejemplar que incluye varios pins de entrada y salida. La figura 3 es un diagrama de bloque que muestra un objeto de efecto ejemplar que contiene dos EfectosPrimitivos, cada uno permitiendo varios formatos de entrada y salida. La figura 4 es un diagrama de bloque que muestra un objeto de efecto ejemplar. La figura 5 es un diagrama de bloque que muestra un botón de ejemplo de antes y después de que se ha aplicado un efecto de explosión. La figura 6 es un diagrama de bloque que muestra un método ejemplar para proveer uno o más efectos para un elemento visual. La figura 7 es un diagrama de bloque que muestra un método ejemplar para transformar las coordenadas de golpe para una evaluación de golpe precisa sobre un elemento visual con un efecto(s) aplicado(s). La figura 8 es un diagrama de bloque que muestra un entorno de computadora de propósitos generales que puede usarse en una o más implementaciones de conformidad con la presente invención. Números de referencia iguales se usan para designar partes iguales en los dibujos adjuntos. Descripción Detallada de la Invención La descripción detallada provista abajo en relación con los dibujos adjuntos se provee como una descripción de los presentes ejemplos y no pretende representar las únicas formas en la que puede construirse o usarse el presente ejemplo. La descripción establece las funciones del ejemplo y la secuencia de pasos para construir y operar el ejemplo. Sin embargo, funciones y secuencias iguales o similares pueden lograrse de diferentes ejemplos. Aunque los ejemplos de la presente se describen e ilustran aquí como implementados en un sistema de computadora, el sistema descrito se provee como un ejemplo y no una limitación. Como lo apreciarán los expertos en la técnica, los ejemplos de la presente son adecuados para la aplicación de una variedad de diferentes tipos de sistemas de cómputo y gráficos. Existen numerosos términos que se usan en la descripción que se definen explícitamente abajo. Las siguientes definiciones pretenden suplantar cualquier definición alternativa que puede conocerse en la técnica. Contenido activo - un elemento visual, tal como un botón, combobox, campo de edición, casilla de selección, imagen, video, o similar capaz de soportar alguna forma de interacción de usuario o que está animado en cierta manera. El contenido activo puede convertirse en memoria sin que se despliegue en una pantalla. Efecto - Un efecto es un objeto que contiene un EfectoGráfico (i.e. un Gráfico Acíclico Dirigido (DAG)). EfectoPrimitivo - Este es un efecto base. No contiene ningún niño. Este es el efecto que generalmente crean los desarrolladores. Este es el objeto que hace ei procesamiento de píxeles real para el efecto. efecto - Este término se usa típicamente cuando puede usarse o especificarse un Efecto o un EfectoPrimitivo. EfectoGráfico - Se refiere a toda el gráfico de efecto (i.e. cierto Efecto que es Efecto superior en una DAG de DAGs). pin - Se usa para describir el punto de conexión (a través de IMILEfectodeMapadeBitsConectordeEntrada) que un efecto expone para conectar los efectos juntos o para otros propósitos.
Gráficos de mapas de bits- Esta es la representación de las imágenes como un conjunto de píxeles, en general en la forma de una rejilla rectangular o un mapa de bits. Este término normalmente se usa en contraste con el término "gráficos de vectores". Gráficos de vectores - también conocidos como modelado geométrico, es el uso de primitivos geométricos tales como puntos, líneas, curvas y polígonos para representar imágenes en gráficos de computadora. Este término típicamente se usa en contraste con el término "gráficos de mapas de bits". Elemento visual - Esta es una construcción gráfica tal como un botón, campo de edición, imagen, menú, icono, o cualquier otra construcción gráfica animada o interactiva convertida en memoria o en una pantalla, lienzo electrónico, interfaz de usuario, o similar. Un elemento visual puede ser un elemento de gráficos de mapas de bits, un elemento de gráficos de vectores, o cualquier tipo de construcción gráfica.
La figura 1 es un diagrama de bloque que muestra un objeto de Efecto ejemplar 100. Un Efecto es un grupo de uno o más EfectosPrimitivos, tales como 104a-104d, que forma un gráfico acíclica dirigido (DAG). Este efecto DAG típicamente está encapsulado dentro de un objeto simple 100 que expone IMILEfectodeMapadeBits 106. Cada elemento dentro del Efecto 100 es otro Efecto (i.e. expone IMILEfectodeMapadeBits) o un EfectoPrimitivo (i.e. expone IMILEfectodeMapadeBitsPrimitivo 107). Cada efecto puede tener 0 o más entradas, tales como la entrada 108, y salidas, tales como la salida 109. Cada pin de entrada /salida se describe por un IMILEfectodeMapadeBitsConector, tal como los ejemplos 101 y 102. Estos se conectan juntos, como por la conexión ejemplar 110, para formar las trayectorias de flujo de datos a través del efecto DAG. El Efecto 100 puede usarse para proveer un efecto visual para el contenido activo en la forma de mapa de bits, incluyendo elementos visuales tales como botones, campos de edición, gráficas de video, o cualquier otro elemento(s) visual animado de una pantalla, lienzo, interfaz de usuario, o similar. El Efecto 100 también puede usarse para aplicar un efecto visual a un mapa de bits en la memoria sin que el mapa de bits se despliegue. Además, el Efecto 100 puede presentar otras propiedades que describen atributos de su entrada. Por ejemplo, el EfectodeMapadeBits podría emitir información de histograma a color o información de detección de cara. Los efectos específicos provistos generalmente se determinan por los Efectos y los EfectosPrimitivos contenidos en un Efecto, tal como el Efecto ejemplar 100. Típicamente un mapa de bits de un elemento visual se provee en la entrada del Efecto de ejemplo 100, tal como la entrada 101. El mapa de bits de entrada es procesado por el Efecto 100 para proveer un efecto (o grupo de efectos si el Efecto incluye múltiples EfectosPrimitivos, tales como 104a-104d, u otros Efectos), y un mapa de bits incluyendo el efecto(s) que se provee en la salida del Efecto 100, tal como la salida 102. La figura 2 es un diagrama de bloque que muestra un objeto de efecto ejemplar 200 que incluye varios pins de entrada y salida. La ventaja de exponer una serie de pins de entrada/salida, tales como el pin 210, en vez de solo exponer una imagen de salida es que tales pins permiten cuestionar los formatos de entrada y salida de los efectos y otra información sin correr realmente el efecto. Cada pin puede aceptar/generar imágenes en múltiples formatos. Los formatos que un pin acepta/genera pueden enumerarse a través de los métodos de ObtenerFormatoQ y ObtenerFormatosdeNúmeros() de las interfaces IMILEfectodeMapadeBitsConectordeEntrada o IMILEfectodeMapadeBitsConectordeSalida. Cada pin puede tener un formato óptimo - el formato que el efecto preferiría para aceptar/generar en su entrada/salida. Si dos pins conectados tienen el mismo formato óptimo entonces típicamente se usa ese formato. De otra manera, se determina algún otro formato de equiparación, típicamente con base en el formato de salida inicial solicitado al final del gráfico de efecto. Si no hay un formato de equiparación mutuo entonces la conversión ocurrirá cuando la información fluya de la salida de un efecto a la entrada del siguiente efecto, como se muestra en conexión con la figura 3. La figura 3 es un diagrama de bloque que muestra un objeto de efecto ejemplar 300 que contiene dos EfectosPrimitivos, cada uno suportando varios formatos de entrada y salida. El EfectoPrimitivol se muestra soportando dos formatos de salida, MILPixelFormat24bbpBGR - la salida óptima como se indica por el asterisco, y un segundo formato de salida, MILPixelFormat32bppARGB. El EfectoPrimitivo2 se muestra soportando dos formatos de entrada, el formato de entrada óptima es el mismo que el formato de salida óptima del formato de salida óptima EfectoPrimitivol. La conexión 310 entre el EfectoPrimitivol y el EfectoPrimitivo2 no causará la conversión del formato debido a que ambos comparten un tipo de formato óptimo de MILPixelFormat24bppBGR. Se le pedirá al EfectoPrimitivol salir en su formato óptimo y el resultado pasará al EfectoPrimitivo2. El EfectoPrimitivo2 se muestra soportando un formato de salida simple, MILPixelFormat32bppGris (su formato óptimo como se indica por el asterisco), y se conecta 320 a la salida individual 330 del efecto 300. Pero el formato de salida único del efecto 300 es MILPixelFormat32bppARGB, diferente del formato de salida único del EfectoPrimitivo2. Por lo tanto, podría ocurrir una conversión entre la salida del EfectoPrimitivo2 y la salida de todo del gráfico de efecto 300. En un ejemplo de cómo se manejan los desajustes de formato, si los formatos óptimos no se equiparan entre el gráfico y el efecto conectado a la salida del gráfico, entonces se pedirá el último formato requerido (i.e.
MILPíxelFormat32bppGris como se muestra en la figura 3). Si el último formato de salida requerido no existe como una salida del gráfico, puede seleccionarse un formato al azar. Cada pin de salida (IMILEfectodeMapadeBitsConectordeSalida) puede vincularse a un pin de entrada de otro efecto en el DAG, siempre y cuando conserve la naturaleza acíclica del gráfico. Este vínculo puede ser de 1 a varios (i.e. una conexión de salida individual puede vincularse a múltiples conexiones de entrada, pero no viceversa). La figura 4 es un diagrama de bloque que muestra un objeto de efecto ejemplar 400. En este ejemplo, el objeto de ejemplo 400 comprende una clase envolvente 420 construida usando un código administrado, tal como C# (C sostenido), que contiene una implementación sin administrar del código de efectos real 410, implementado en código tal como C + + o similar. El objeto de ejemplo 400 incluye una sola entrada 401 y una sola salida 490. En ejemplos alternativos, pueden proveerse múltiples entradas y/o salidas. En caso de que se requiera o provea la conversión de formato, dicho código de conversión típicamente se incluye en la clase envolvente 420. De forma alternativa, el código de conversión puede incluirse en la porción del código sin administrar 410 o proveerse por otro módulo. También incluida como parte del objeto de efecto 400 se encuentra la función de transformación F(p) 430. En un ejemplo, la función de transformación 430 se incluye como parte del código sin administrar 410. La transformación 430 es la función que transforma el elemento visual de entrada, típicamente en la forma de un mapa de bits, para proveer el elemento visual con cierto nuevo efecto visual. En general, dicha función de transformación 430 puede aplicarse a los elementos visuales que son construcciones de gráficos de mapa de bits, construcciones de gráficos de vectores, o similares. Por ejemplo, supongamos que es deseable proveer un botón en una interfaz de usuario y tener el botón "brillo" cuando el ratón se coloca sobre el botón. En tal caso, puede crearse un objeto de efecto de brillo y asociarse con el botón, la función de transformación del efecto de brillo que realiza la operación sobre el botón del mapa de bits para que parezca que brilla. Note que la funcionalidad del botón se mantiene sin cambios — sólo los aspectos visuales del botón se modifican por el efecto. Es decir, que el usuario puede colocar el cursor del ratón sobre el botón, dar clic en el botón, etc. y el botón se comporta como se espera. En una interfaz de usuario convencional, la "prueba de golpe " se emplea típicamente para determinar si cierta entrada de usuario como un clic de ratón u opresión de tecla, deberá aplicarse a un elemento visual o contenido activo. Es decir, cuando el usuario da clic en un botón, por ejemplo, el código de prueba de golpe evalúa las coordenadas del clic del ratón para determinar si el clic se hizo en el botón. De ser así, entonces el botón responde de igual forma, tal como redibujándose a sí mismo en la posición de abajo, lanzando la funcionalidad relacionada con el botón, etc. En el caso de un efecto visual relacionado con el botón, es importante que la prueba de golpe opere como se espera. Usando el ejemplo de un objeto de efecto de brillo, cuando el cursor del ratón se coloca sobre el botón, un objeto de efecto de brillo asociado puede causar el botón que toma una apariencia de brillo. Además al efecto de brillo, el botón también se subrayará debido al evento de sobre ratón como normalmente lo haría. Y dar clic en el botón también produciría el resultado esperado. En un ejemplo, un objeto de efecto puede asociarse con un elemento visual como una propiedad del elemento. La figura 5 es un diagrama de bloque que muestra un botón antes y después de que se ha aplicado un efecto de explosión. Considere un objeto de efecto que produce y un efecto de explosión- que rompe el elemento visual asociado en varios fragmentos y que los esparce a través de la interfaz de usuario en el transcurso del tiempo. La figura 5 provee un ejemplo de antes y después de dicho efecto. En el marco 501 — el marco de "antes", la interfaz de usuario (Ul) 500 se muestra con el botón convencional 502 antes de que se aplique el efecto de explosión, tal vez como resultado de un evento de sobre ratón o un evento de clic sobre el botón. El marco 502 — el marco de "después", muestra la misma interfaz de usuario 500 con el botón 504 después de que se aplica el efecto de explosión. El botón 504 se muestra dividido en tres segmentos 504a-504c cada uno separado entre sí en la Ul 500. El efecto de explosión se implementa en parte por una función de transformación de explosión trazando cada bit del mapa de bits del botón de entrada a nuevas ubicaciones, tal como en varios fragmentos. Dichos trazados pueden cambiar con el tiempo, tal como en un aspecto de "alejarse" de una explosión, quizá hasta que los fragmentos se "establezcan" en algún lugar de la Ul.
Sin importar la transformación, el botón continúa operando como se esperaba. Es decir, el usuario puede dar clic en cualquier fragmento del botón de explosión 504 y el botón se comportará como lo haría si no hubiera explotado. Esto implica que el código de prueba de golpe continúe operando como se espera. Esto se facilita por los eventos de usuario que pasan a través del objeto de Efecto y la función de transformación que determina si el botón fue "pulsado". Típicamente esto se hace al solucionar la función de transformación a la inversa, o usando una función de transformación bidireccional. Las funciones de transformación pueden desempeñar transformaciones afines o no afines. Por ejemplo, las transformaciones afines pueden incluir aumentar, comprimir, estirar o girar un mapa de bits. Las transformaciones no afines pueden incluir efectos tales como borroso, brillo, deformación, gris, difuminado, chispa, flash, transmutación, o cualquier otro efecto similar en donde se agregan los elementos del mapa de bits, se retiran y/o modifican en alguna manera. Además, una función de transformación puede no traducir todos los bits originales de un mapa de bits de entrada, tal como cuando provee el efecto de desaparecer, encoger, salir, hacer la transición a una línea o punto, o similar. Otras posibles transformaciones incluyen remolino, onda, desintegrar, replicar, combinar múltiples mapas de bits en uno, o similares. En algunos casos, el efecto puede resultar en un bit de un mapa de bits de entrada trazado a múltiples ubicaciones, a una ubicación arbitraria, o eliminado. En todos los ejemplos de procedimiento, la función de transformación también provee la capacidad de indicar si el mapa de bits modificado es "golpeado" por cierta entrada de usuario para asegurar que la funcionalidad de prueba de golpe continúa operando como se esperaba. La Figura 6 es un diagrama de bloque que muestra un método ejemplar 600 para proveer uno o más efectos a un elemento visual. Un objeto de Efecto, tal como el objeto de Efecto 100 que se muestra en la figura 1 y que se usa en la descripción del método 600, puede usar dicho método 600. En el bloque 610, el método 600 comienza con un mapa de bits de un elemento visual provisto en la entrada del objeto de Efecto 100. Esto puede ocurrir a través de cualquier proceso de software y/o técnica convencional. En el bloque 620, una prueba determina si hay un EfectoPrimitivo siguiente contenido en el objeto de Efecto 100 DAG para procesar el mapa de bits. Como se muestra en la figura 1, un objeto de Efecto puede contener EfectosPrimitivos y/u otros objetos Efecto, una o más entradas conectadas a la entrada del objeto de Efecto 100, y cada salida está conectada a una o más entradas adicionales de EfectoPrimitivo y/o Efecto, o a la salida del objeto de Efecto 100. Si hay un EfectoPrimitivo siguiente, el método 600 continúa en el bloque 650. De otra manera el método 600 continúa en el bloque 630.
En el bloque 630, una prueba determina si hay un objeto de Efecto siguiente contenido en el objeto de Efecto 100 DAG.
Si hay un siguiente objeto de Efecto, digamos el "Efecto B", entonces el método continúa en el bloque 610 para el Efecto B. De otra manera, el método 600 continúa en el bloque 640. En el bloque 640, el mapa de bits de entrada ha completado el procesamiento por el objeto de Efecto 100 y el mapa de bits procesado se provee en la salida. Esto puede ocurrir a través de numerosos procesos de software y/o técnicas convencionales. En el bloque 650, el mapa de bits, que puede procesarse por cualquier EfectosPrimitivos y/o Efectos anteriores, se provee en la entrada del siguiente EfectoPrimítivo. Esto puede ocurrir a través de cualquier número de procesos de software y/o técnicas convencionales. En el bloque 660, una prueba determina si el mapa de bits está en un formato aceptable para procesar por el EfectoPrimitivo. De ser así, entonces el método 600 continúa en el bloque 680. De otra manera, el método 600 continúa en el bloque 670. En el bloque 670, el mapa de bits es convertido o reformateado en un formato aceptable para procesar por el siguiente EfectoPrimitivo. En un ejemplo, el mapa de bits puede ser reformateado en un formato óptimo. En el bloque 680, una función de transformación, tal como la función de transformación F(p) 430 que se muestra en la figura 4, se aplica al mapa de bits de entrada, típicamente resultando en un efecto (s) que se aplica al mapa de bits o un nuevo mapa de bits generado del mapa de bits de entrada, el nuevo mapa de bits incluye el efecto(s). El método 600 continúa en el bloque 620. La figura 7 es un diagrama de bloque que muestra un ejemplo de método 700 para transformar las coordenadas de golpe para una prueba de golpe precisa sobre un elemento visual con un efecto(s) aplicado. Debido a que el elemento visual con un efecto(s) puede colocarse en una interfaz de usuario distinta de lo que lo haría sin el efecto(s), una transformación de coordenadas de golpe, tal como un evento de clic de ratón o colocación por encima, es típicamente necesario para asegurar una prueba de golpe adecuada. Un objeto de efecto, tal como el objeto de Efecto 100 mostrado en la figura 1 y utilizado en la descripción del método 700 a continuación, puede hacer uso de dicho método 700. En el bloque 710, el método 700 comienza con las coordenadas de un evento de usuario, tal como un clic de ratón o evento de colocar encima, siendo provisto a una entrada de objeto de Efecto 100. Esto puede ocurrir a través de cualquier número de procesos de software y/o técnicas convencionales. En el bloque 720, una prueba determina si hay un EfectoPrimitivo anterior contenido en el objeto de Efecto 100 DAG para transformar las coordenadas. Como se muestra en la figura 1, un objeto de Efecto tal como el objeto de Efecto 100 puede contener EfectosPrimitivos y/u otro objeto de Efectos, una o más de sus entradas está conectada a la entrada del objeto de Efecto 100, y cada salida está conectada a una o más entradas adicionales de EfectoPrimitivo y/o Efecto, o a la salida del objeto de Efecto 100. El método 700 comienza con el último de dicho objeto de efecto en el DAG y trabaja para lograr la transformación de coordenadas. Un objeto de efecto "anterior" es un objeto de efecto en el DAG que comienza en la salida del objeto de Efecto y trabaja de vuelta mediante cualquier objeto de efecto en el DAG hacia la entrada del objeto de Efecto. Por ejemplo, el EfectoPrimitívo 104d es anterior a la salida 102 del objeto de Efecto, los EfectosPrimitivos 104a, 104b y 104c son anteriores a 104d, y el EfectoPrimitivo 104b también es anterior a 104c. Si existe un EfectoPrimitivo anterior, el método 700 continúa en el bloque 730. De otra manera el método 700 continúa en el bloque 740. En el bloque 730, una función de transformación, tal como la función de transformación F(p) 430 que se muestra en la figura 4, se aplica a las coordenadas del mapa de bits del usuario. Típicamente la función de transformación se aplica a la inversa. El método 700 continúa en el bloque 720. En el bloque 740, una prueba determina si hay un objeto de Efecto anterior contenido en el objeto de Efecto 100 DAG. Si hay un objeto de Efecto anterior, digamos "Efecto A", entonces el método continúa en el bloque 710 para el Efecto A. De otra manera el método 700 continúa en el bloque 750. En el bloque 750, el método 700 provee las coordenadas transformadas del evento de usuario para el código de prueba de golpe o similar. La figura 8 es un diagrama de bloque que ilustra un entorno de computadora de propósitos generales 800 que puede ser usado en una o más implementaciones de acuerdo con la presente descripción. El entorno de sistema de cómputo 800 es sólo un ejemplo de un entorno de cómputo adecuado y no pretende sugerir ninguna limitación en lo que se refiere al alcance o funcionalidad del tema reivindicado. El entorno de cómputo 800 tampoco deberá interpretarse como dependiente o relacionado a requerimientos de cualquier componente o la combinación de componentes ilustrados en el entorno operativo ejemplar 800. Las técnicas y objetos descritos pueden operar con numerosos entornos de sistemas de cómputo de propósitos generales o especiales o configuraciones. Ejemplos de sistemas de cómputo bien conocidos, entornos y/or configuraciones que pueden ser adecuados para usarse incluyen, pero no se limitan a, computadoras personales, computadoras de servidor, dispositivos portátiles o laptops, sistemas de multiprocesador, sistemas basados en microprocesador, decodificadores, electrónicos de consumo programable, PCs en red, minicomputadoras, computadoras mainframe, entornos de cómputo distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. La siguiente descripción puede entenderse en el contexto general de instrucciones ejecutables por computadora, tales como módulos de programa, ejecutados por una computadora. En general, los módulos de programa incluyen rutinas, programas, objetos, estructuras de datos, etc., que llevan a cabo tareas particulares o implementan tipos de datos abstractos particulares. Las implementaciones descritas pueden practicarse en entornos de cómputo distribuidos en los que las tareas se realizan por dispositivos de procesamiento remoto que están vinculados mediante una red de comunicaciones. En un entorno de cómputo distribuido, los módulos de programa pueden localizarse en medios de almacenamiento tanto locales como remotos incluyendo dispositivos de almacenamiento de memoria. Con referencia a la figura 8, un sistema ejemplar para implementar la invención incluye un dispositivo de cómputo de propósitos generales en la forma de una computadora 810. Los componentes de la computadora 810 pueden incluir, pero no limitarse a una unidad de procesamiento 820, una memoria de sistema 830, y un bus de sistema 821 que acopla varios componentes del sistema, incluyendo la memoria del sistema, a la unidad de procesamiento 820. El bus del sistema 821 puede ser cualquiera de los diferentes tipos de estructuras de bus incluyendo un bus de memoria o controlador de memoria, un bus periférico, y un bus local que usa cualquiera de una variedad de arquitecturas de bus. A manera de ejemplo y no de limitación, dichas arquitecturas incluyen un bus de Arquitectura Estándar (ISA), bus de Arquitectura de Micro Canal (MCA), bus de ISA incrementada (EISA), bus local de la Asociación de Estándares Electrónicos por Video (VESA) , y bus de Interconexión del Componente Periférico (PCl) también conocido como bus de Mezzanine. La computadora 810 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible que puede ser accedido por una computadora 810 e incluye medios tanto volátiles como no volátiles, medios removibles y no removibles. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora incluyen medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de la información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos.
Los medios de almacenamiento incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otros medios de almacenamiento en disco óptico, cassettes magnéticos, cinta magnética, disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede usarse para almacenar la información deseada y que puede accederse por computadora 810. Los medios de comunicación típicamente comprenden instrucciones legibles en computadora, estructuras de datos y/o programas. También deberán incluirse las combinaciones de cualquiera de estos dentro del alcance de los medios legibles por computadora. La memoria del sistema 830 incluye medios de almacenamiento de computadora en la forma de memoria volátil y/o no volátil tal como memoria de sólo lectura (ROM) 831 y memoria de acceso aleatorio (RAM) 832. Un sistema de entrada/salida básico 833 (BIOS), que contiene las rutinas básicas que ayudan a transferir información entre los elementos de una computadora 810, tal como durante el arranque, típicamente se almacena en la ROM 831. La RAM 832 típicamente contiene datos y/o módulos de programas que pueden accederse de inmediato y/u operarse actualmente por la unidad de procesamiento 820. A manera de ejemplo, y no de limitación, la figura 8 ilustra el sistema operativo 834, los programas de aplicación 835, otros módulos de programa 836 y datos de programa 837. La computadora 810 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles / no volátiles. Únicamente a manera de ejemplo, la figura 8 ilustra una unidad de disco duro 841 que lee de o escribe en medios magnéticos no volátiles, no removibles, y una unidad de disco magnético 851 que lee de o escribe en un disco magnético no volátil, removible 852, y una unidad de disco óptico 855 que lee de o escribe en un disco óptico no volátil, removíble 856 tal como un CD ROM u otros medios ópticos. Otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles que pueden usarse en el entorno operativo ejemplar incluyen, pero no se limitan a, cassettes de cintas magnéticas, tarjetas de memoria instantánea, discos versátiles digitales, cintas de video digital, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 841 típicamente se conecta al bus del sistema 821 a través de una interfaz de memoria no removible tal como la interfaz 840, y la unidad de disco magnético 851 y la unidad de disco óptico 855 se conectan típicamente al bus del sistema 821 por una interfaz de memoria removible, tal como la interfaz 850. Las unidades y sus medios de almacenamiento de computadora relacionados, que se discuten con anterioridad y se ilustran en la figura 8, proveen almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 810. Por ejemplo, en la figura 8, la unidad de disco duro 841 se ilustra como sistema operativo de almacenamiento 844, programas de aplicación 845, otros módulos de programa 846 y datos de programa 847. Observe que estos componentes pueden ser iguales o diferentes del sistema operativo 834, los programas de aplicación 835, otros módulos de programa 836, y datos de programa 837. El sistema operativo 844, los programas de aplicación 845, otros módulos de programa 846, y datos de programa 847 reciben diferentes números en la presente para ilustrar que, en un mínimo, son copias diferentes. Un usuario puede ingresar comandos e información en la computadora 810 mediante dispositivos de entrada tales como un teclado 862 y un dispositivo de puntero 861, normalmente referido como un ratón, trackball o almohadilla táctil. Otros dispositivos de entrada (no se muestran) pueden incluir una palanca de mando, una almohadilla de juego, un plato satelitales, escáner, o similar. Estos y otros dispositivos de entrada con frecuencia se conectan a la unidad de procesamiento 820 a través de una interfaz de entrada de usuario 860 que se acopla con el bus del sistema 821, pero que puede conectarse por otra interfaz y estructuras de bus, tal como un puerto paralelo, puerto de juego o un bus serial universal (USB). Un monitor 891 u otro tipo de dispositivo de despliegue también se conectan al bus del sistema 821 a través de una ¡nterfaz, tal como una ¡nterfaz de video 890. Además del monitor, las computadoras también puede incluir otros dispositivos de salida periféricos tales como bocinas 897 e impresora 896, que pueden ser conectados a través de una interfaz periférica de salida 895. Una cámara 863 (tal como una fija digital/electrónica o de video, o escáner de película /fotográfico) capaz de capturar una secuencia de imágenes 864 también puede incluirse como un dispositivo de entrada para la computadora personal 810. Además, aunque solo se ilustra una cámara, pueden incluirse múltiples cámaras como un dispositivo de entrada a la computadora personal 810. Las imágenes 864 de la una o más cámaras son ingresadas en la computadora 810 mediante una interfaz de cámara adecuada 865. Esta interfaz 865 se conecta al bus del sistema 821, permitiendo así que las imágenes sean enrutadas y almacenadas en la RAM 832, o cualquier de los otros dispositivos de almacenamiento de datos relacionados con la computadora 810. Sin embargo, cabe destacar que los datos de imágenes pueden ingresarse en la computadora 810 de cualquiera de los medios legibles por computadora, sin requerir el uso de la cámara 863. La computadora 810 puede operar en un entorno de red usando conexiones lógicas para uno o más computadoras remotas, tales como una computadora remota 880. La computadora remota 880 puede ser una computadora personal, un servidor, un enrutador, una PC en red, un dispositivo similar o cualquier otro nodulo de red común, y típicamente incluye muchos o todos los elementos descritos con anterioridad relacionados con la computadora 810, aunque en la figura 8 sólo se ilustró un dispositivo de almacenamiento de memoria 881. Las conexiones lógicas mostradas en la figura 8 incluyen una red de área local (LAN) 871 y una red de área extendida (WAN) 873, pero también puede incluir otras redes. Dichos entornos de red son comunes en oficinas, redes de computadora corporativas, intranets y la Internet. Cuando se usan en un entorno de redes LAN, la computadora 810 se conecta a una LAN 871 mediante una interfaz de red o adaptador 870. Cuando se usa en un entorno de redes WAN, la computadora 810 típicamente incluye un módem 872 u otro medio para establecer comunicaciones sobre la WAN 873, tal como la Internet. El módem 872, que puede ser interno o externo, puede conectarse al bus del sistema 821 a través de la interfaz de entrada del usuario 860 u otro mecanismo adecuado. En un entorno de red, los módulos de programa que se ilustran relacionados con la computadora 810, o porciones de los mismos, pueden almacenarse en el dispositivo de almacenamiento de memoria remoto. A manera de ejemplo, y no de limitación, la figura 8 ilustra los programas de aplicación remotos 885 como alojados en el dispositivo de memoria 881. Será evidente que las conexiones de red mostradas son ejemplares y pueden usarse otros medios para establecer un víncu lo de com unicación entre las computadoras.
Aunque se han ilustrado y descrito las implementaciones ejemplares , será evidente que pueden hacerse varios cambios sin apartarse del espíritu y alcance de las reivind icaciones adj untas.

Claims (20)

  1. REIVINDICACIONES 1. Un método para aplicar un efecto visual a un elemento visual, el método consiste en: proveer un gráfico acíclico dirigido incluyendo uno o más efectos, una entrada, y una salida, cada uno del uno o más efectos incluyen una función de transformación; proveer el elemento visual en la entrada; determinar si hay un efecto siguiente del uno o más efectos en el gráfico acíclico dirigido y, de ser así, proveer el elemento visual a una entrada del siguiente efecto; determinar si el formato del elemento visual es compatible con el siguiente efecto y, si no, convertir el elemento visual a un formato compatible; aplicar la función de transformación del siguiente efecto al elemento visual para modificar el elemento visual con el siguiente efecto; repetir el paso determinante hasta que no haya otro efecto del uno o más efectos en el gráfico acíclico dirigido; y proveer el elemento visual en la salida.
  2. 2. El método de conformidad con la reivindicación 1, caracterizado además porque la función de transformación es una función de transformación bidireccional.
  3. 3. El método de conformidad con la reivindicación 1, caracterizado además porque el elemento visual es un mapa de bits.
  4. 4. El método de conformidad con la reivindicación 1, caracterizado además porque el elemento visual como salida se despliega en una interfaz de usuario.
  5. 5. El método de conformidad con la reivindicación 1, caracterizado además porque el elemento visual como entrada se provee desde un dispositivo de almacenamiento y el elemento visual como salida se almacena en el dispositivo de almacenamiento.
  6. 6. El método de conformidad con la reivindicación 1, caracterizado además porque el elemento visual incluye video.
  7. 7. El método de conformidad con la reivindicación 1, caracterizado además porque el elemento visual se convierte en un mapa de bits.
  8. 8. El método de conformidad con la reivindicación 7, caracterizado además porque el elemento visual como salida retiene su funcionalidad interactiva.
  9. 9. El método de conformidad con la reivindicación 1, caracterizado además porque el elemento visual es animado.
  10. 10. El método de conformidad con la reivindicación 1, caracterizado además porque está comprendido en una instrucción ejecutable por computadora sobre un medio legible por computadora.
  11. 11. Un método para transformar las coordenadas de un evento de golpe de un elemento visual, el método consiste en: proveer un gráfico acíclico dirigido incluyendo uno o más efectos, una entrada, y una salida, cada uno del uno o más efectos incluyen una función de transformación bidireccional; aplicar el uno o más efectos al elemento visual; proveer las coordenadas del evento de golpe en la entrada; determinar si hay un efecto previo del uno o más efectos en el gráfico acíclico dirigido y, de ser así, proveer las coordenadas a una entrada del efecto anterior; aplicar la función de transformación bidireccional del efecto anterior a las coordenadas con el fin de modificar las coordenadas con base en el efecto anterior, repetir el paso de determinación hasta que no haya un efecto previo del uno o más efectos en el gráfico acíclico dirigido; y proveer las coordenadas a la salida.
  12. 12. El método de conformidad con la reivindicación 11, caracterizado además porque el elemento visual es un mapa de bits.
  13. 13. El método de conformidad con la reivindicación 11, caracterizado además porque el elemento visual incluye video.
  14. 14. El método de conformidad con la reivindicación 11, caracterizado además porque el evento de golpe es un resultado de una entrada de usuario.
  15. 15. El método de conformidad con la reivindicación 11, caracterizado además porque está comprendido en una instrucción ejecutable por computadora sobre un medio legible por computadora.
  16. 16. Un sistema para aplicar efectos visuales a contenido activo, el sistema comprende: un objeto de efecto que incluye una entrada y una salida, el objeto de efecto incluye uno o más objetos de efecto o uno o más efectos primitivos; medios para establecer acoplamientos entre uno o más de los objetos de efecto, uno o más de los efectos primitivos, la entrada y la salida, para formar un gráfico acíclico dirigido; medios para proveer el contenido activo a la entrada; medios para aplicar una función de transformación de cada uno del uno o más objetos de efecto o el uno o más efectos primitivos que comprenden el gráfico acíclico dirigido al contenido activo resultante en el contenido activo transformado; y medios para proveer el contenido activo transformad a la salida.
  17. 17. El sistema de conformidad con la reivindicación 16, caracterizado además porque la función de transformación es una función de transformación bidireccional.
  18. 18. El sistema de conformidad con la reivindicación 17, caracterizado además porque comprende: medios para proveer coordenadas de un evento de golpe sobre el contenido activo transformado al objeto de efecto; medios para aplicar la función de transformación bidireccional de cada uno del uno o más objetos de efecto o uno o más de los efectos primitivos que comprenden el gráfico acíclico dirigido para coordinar el evento de golpe que da como resultado coordenadas transformadas; y medios para proveer las coordenadas transformadas para la funcionalidad de la prueba de golpe.
  19. 19. El sistema de conformidad con la reivindicación 16, caracterizado además porque el contenido activo incluye video.
  20. 20. El sistema de conformidad con la reivindicación 16, caracterizado además porque está comprendido en una instrucción ejecutable por computadora sobre un medio legible por computadora.
MX2008003406A 2005-09-13 2006-09-05 Efectos visuales extensibles en contenido activo en interfaces de usuario. MX2008003406A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71673505P 2005-09-13 2005-09-13
US11/457,711 US8026920B2 (en) 2005-09-13 2006-07-14 Extensible visual effects on active content in user interfaces
PCT/US2006/034613 WO2007032972A1 (en) 2005-09-13 2006-09-05 Extensible visual effects on active content in user interfaces

Publications (1)

Publication Number Publication Date
MX2008003406A true MX2008003406A (es) 2008-03-27

Family

ID=37856794

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2008003406A MX2008003406A (es) 2005-09-13 2006-09-05 Efectos visuales extensibles en contenido activo en interfaces de usuario.

Country Status (11)

Country Link
US (1) US8026920B2 (es)
EP (1) EP1949210A4 (es)
JP (1) JP4927846B2 (es)
KR (1) KR20080042835A (es)
CN (1) CN101283328B (es)
BR (1) BRPI0615776A2 (es)
CA (1) CA2618862C (es)
MX (1) MX2008003406A (es)
NO (1) NO338043B1 (es)
RU (1) RU2008109488A (es)
WO (1) WO2007032972A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US10313505B2 (en) 2006-09-06 2019-06-04 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
US8519964B2 (en) 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display
US9933937B2 (en) 2007-06-20 2018-04-03 Apple Inc. Portable multifunction device, method, and graphical user interface for playing online videos
US9772751B2 (en) 2007-06-29 2017-09-26 Apple Inc. Using gestures to slide between user interfaces
US11126321B2 (en) 2007-09-04 2021-09-21 Apple Inc. Application menu user interface
US8619038B2 (en) * 2007-09-04 2013-12-31 Apple Inc. Editing interface
US9619143B2 (en) 2008-01-06 2017-04-11 Apple Inc. Device, method, and graphical user interface for viewing application launch icons
US8423883B1 (en) * 2009-09-11 2013-04-16 Adobe Systems Incorporated Systems and methods of creating and editing electronic content including multiple types of graphics
US8736561B2 (en) 2010-01-06 2014-05-27 Apple Inc. Device, method, and graphical user interface with content display modes and display rotation heuristics
US20130080953A1 (en) * 2011-09-27 2013-03-28 International Business Machines Corporation Multi-area widget minimizing
US8930810B2 (en) * 2012-02-13 2015-01-06 International Business Machines Corporation User interface (UI) color scheme generation and management according to visual consistency of visual attributes in the color scheme
CN104106098B (zh) * 2012-08-03 2019-05-03 梦工厂动画公司 有向无环图中的约束评估
US10528214B2 (en) * 2016-12-28 2020-01-07 Microsoft Technology Licensing, Llc Positioning mechanism for bubble as a custom tooltip
US10877643B2 (en) * 2018-03-15 2020-12-29 Google Llc Systems and methods to increase discoverability in user interfaces

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2603982B2 (ja) * 1988-02-12 1997-04-23 日本放送協会 映像信号処理システムのマルチプロセッサ結合装置
DE69225544T2 (de) * 1991-08-13 1998-12-03 Xerox Corp Elektronische Bilderzeugung
GB2340362B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
GB2340361B (en) 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
GB2340360B (en) 1998-07-31 2002-11-06 Sony Uk Ltd Animation of video special effects
US6522331B1 (en) * 2000-02-01 2003-02-18 Stormfront Studios, Inc. Character animation using directed acyclic graphs
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US7064766B2 (en) * 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7412662B2 (en) * 2004-04-12 2008-08-12 Microsoft Corporation Method and system for redirection of transformed windows
US20060290705A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Performing a pre-rendering pass in digital image processing
US7554550B2 (en) * 2005-06-24 2009-06-30 Microsoft Corporation Non-destructive processing of digital image data
US7519233B2 (en) * 2005-06-24 2009-04-14 Microsoft Corporation Accumulating transforms through an effect graph in digital image processing
US7619628B2 (en) * 2005-06-24 2009-11-17 Microsoft Corporation Caching digital image data
US7295208B2 (en) * 2005-06-24 2007-11-13 Microsoft Corporation Translating layers into effect graphs in digital image processing

Also Published As

Publication number Publication date
US8026920B2 (en) 2011-09-27
US20070061744A1 (en) 2007-03-15
NO338043B1 (no) 2016-07-25
EP1949210A1 (en) 2008-07-30
EP1949210A4 (en) 2009-01-07
KR20080042835A (ko) 2008-05-15
JP4927846B2 (ja) 2012-05-09
RU2008109488A (ru) 2009-10-10
NO20080709L (no) 2008-04-14
CA2618862A1 (en) 2007-03-22
CA2618862C (en) 2013-12-24
BRPI0615776A2 (pt) 2011-05-24
JP2009508256A (ja) 2009-02-26
CN101283328A (zh) 2008-10-08
WO2007032972A1 (en) 2007-03-22
CN101283328B (zh) 2011-08-03

Similar Documents

Publication Publication Date Title
MX2008003406A (es) Efectos visuales extensibles en contenido activo en interfaces de usuario.
US7428542B1 (en) Method and system for combining nodes into a mega-node
JP4700423B2 (ja) 形状を使用する共通チャーティング
KR100918532B1 (ko) 알파 채널 인식 환경에서 비알파 채널 영상 데이터를 이용하는 코프로세싱 장치 및 컴퓨팅 장치
CN111583348B (zh) 图像数据编码方法及装置、显示方法及装置、电子设备
CA2439633A1 (en) Screen display processing apparatus, screen display processing method and computer program
CN112367295B (zh) 插件展示方法及装置、存储介质及电子设备
CN113485686B (zh) 信息系统程序的生成方法、装置、电子设备及存储介质
US20040212629A1 (en) Drawing processing apparatus, drawing processing method, drawing processing program and teleconference system equipped therewith
CN113687750B (zh) 一种截图处理方法及装置
CN109032744B (zh) 图标展示方法、装置、服务器及存储介质
CN112099770A (zh) 基于模板的网页生成方法、系统、设备及存储介质
CN111292392A (zh) 基于unity的图像显示方法、装置、设备及介质
CN112988276B (zh) 一种资源包的生成方法、装置、电子设备及存储介质
CN116450276B (zh) 事件响应方法、装置、电子设备及介质
CN114286163B (zh) 一种序列图的录制方法、装置、设备及存储介质
KR100692210B1 (ko) 게임 엔진에서 소정의 오브젝트를 렌더링하는 방법 및 상기랜더링 방법을 수행하는 프로그램이 기록된 기록 매체
CN117633259A (zh) 互动多媒体内容的生成方法、装置和计算机可读存储介质
CN115953523A (zh) 模型贴图方法、装置、存储介质和电子设备
CN113407090A (zh) 界面取色方法、装置、电子设备及存储介质
CN117014689A (zh) 弹幕的显示方法、装置以及电子设备
CN113467770A (zh) 一种基于标准数据交换的指令集可视化操作系统、方法及应用
CN117237514A (zh) 图像处理方法和图像处理装置
CN118172229A (zh) 图像渲染方法、装置、电子设备和可读存储介质
Benenson VideoLogo--synthetic movies in a learning environment

Legal Events

Date Code Title Description
FA Abandonment or withdrawal