NO338043B1 - Utvidbare synlige effekter for aktivt innhold i brukergrensesnitt - Google Patents

Utvidbare synlige effekter for aktivt innhold i brukergrensesnitt Download PDF

Info

Publication number
NO338043B1
NO338043B1 NO20080709A NO20080709A NO338043B1 NO 338043 B1 NO338043 B1 NO 338043B1 NO 20080709 A NO20080709 A NO 20080709A NO 20080709 A NO20080709 A NO 20080709A NO 338043 B1 NO338043 B1 NO 338043B1
Authority
NO
Norway
Prior art keywords
effect
transformed
last
visual element
coordinates
Prior art date
Application number
NO20080709A
Other languages
English (en)
Other versions
NO20080709L (no
Inventor
Adam M Smith
Robert A Wlodarczyk
Biliana K Kaneva
Eduardo M Maia
Patrick J Sweeney
Rahul V Patil
Sriram Subramanian
Original Assignee
Microsoft Technology Licensing Llc
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 Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of NO20080709L publication Critical patent/NO20080709L/no
Publication of NO338043B1 publication Critical patent/NO338043B1/no

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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Circuits (AREA)
  • Materials For Medical Uses (AREA)

Description

BAKGRUNN
[oooi ] Noen ganger ønsker applikasjonsutviklere å implementere brukergrensesnitt som inneholder unike elementer som skiller brukergrensesnittet fra andre brukergrensesnitt, og/eller å forbedre en brukers opplevelse når brukeren jobber med applikasjonen via brukergrensesnittet. Én måte en utvikler kan ønske å individuelt tilpasse et brukergrensesnitt på er ved å skape visuelle effekter som opptrer for å signalisere en endring i et brukergrensesnitt eller for å modifisere et element i et brukergrensesnitt. Dagens plattformer støtter imidlertid ikke bruk av en visuell effekt på innhold som anvendes som del av et brukergrensesnitt.
[0002]EP 977146 beskriver en digital videobehandlingsanordningen som omfatter: en flerhet av visningsprosessorer arrangert i en operasjonssekvens, som hver kan opereres for å vise et utgangsresultat vedrørende et bilde fra et videosignal fra inngangsdata knyttet til dette og / eller andre bilder mottatt fra en forutgående visningsprosessor i den operasjonelle sekvensen; hver visningsprosessor kan opereres for å oppdage og kommunisere med andre visningsprosessorer om dens viste utgang gjengitt er konstant mellom tilstøtende bilder.
[0003]EP 977157 A2 beskriver et apparat for videospesialeffekter som omfatter et kjerneprogramobjekt; og en flerhet av visningsprosessor plug-in program objekter som responderer på kjerneprogramobjektet, visningsprosessorer er anordnet i rettet asyklisk graf, som hver kan betjenes for å gi et utgangsresultat i forbindelse med suksessive bilder fra et videosignal fra inngangsdata som gjelder dette og / eller andre bilder mottatt fra en forutgående visningsprosessor i den rettede asyklisk graf, og som responderer på operasjonsparametere relatert til denne visningsprosessoren; hvor hver operasjonsparameter er definert av et parameter plug-in objekt innrettet for å kommunisere en parameterverdi til visningsprosessoren' s plug-in objekt.
[0004]US 6522331 B1 beskriver et figuranimasjonssystem, metode og datamaskinprogramprodukt for å animere et skjelett. Skjelettet har ben som er anordnet i et hierarki. Hvert ben i skjelettet er definert i forhold til det overordnede ben og det øverste benet i hierarkiet er rot-benet. Når et ben i skjelettet er animert, blir alle ben under det animerte benet i hierarkiet også animert. En animasjon av et ben er spesifisert med en rettet asyklisk graf (DAG) som har en eller flere noder. Nodene er enten datagenereringsnoder (DG noder) eller kombineringsfilter noder. DG noder har null eller én inngang og har en utgang som sender ut animasjons data. DG noder som har null innganger inkluderer faste forhånds-genererte, sporings, revers, speil, og støy noder. DG noder som har en inngang inkluderer begrense og reflektere noder. Kombinerer-noder har to innganger for å motta animasjon data og en utgang som sender ut animasjons data. Kombinerer-noder inkluderer legge over hverandre, blande, og transisjons noder. Når et ben animeres, spør benet sin tilhørende DAG, om noen, og gir DAG tiden som har gått siden forrige spørringen. Den øverste noden av DAG spør rekursivt lavere noder inntil DG noder er nådd og animasjonsdataen når toppnoden. Disse animasjonsdataene animerer benet. Ved bruk av DAGer på denne måten vil overgangene mellom ulike animasjoner bli glatte som gjør at repeterende animasjoner vises mer realistisk.
[0005]US 5490246 A beskriver en grafikk editor som genererer en utseende konstruksjonsgraf (ACG) som representerer e dannelsesprosessen av et bilde som en rettet asyklisk graf (DAG). ACG bildetransformasjons-operasjoner (Transforms), og utganger (synbare bilder) som kan vises, for eksempel i et vindu på en skjerm, kan manipulert for å konstruere og redigere komplekse bilder. Følgelig er det viste ACG et brukergrensesnitt som tillater komplekse grafikkbilder i å bli bygget på en enkel måte, og dermed lett forstått og manipulert (redigert) av en operatør. Nodene i ACG er selektivt sammenkoblet med linker (kanter). Det komplekset bildet representert i ACG kan konstrueres og vises i et visningsvindu på skjermen ved å "kjøre" ACG. Grafikkeditoren "kjører" ACG ved å utføre operasjoner på bildefragmenter som er definert av sammenkoblede noder av ACG. Når ACG er "kjørt", vil hver utgang eller visningsnode vise sitt bilde i et visningsvindu som opprettes automatisk.
OPPSUMMERING
[0006]Det følgende presenterer en forenklet oppsummering av oppfinnelsen for å gi leseren en grunnleggende forståelse. Denne oppsummeringen er ikke en utfyllende oversikt over oppfinnelsen, og den er ikke ment å identifisere nøkkelelementer/avgjørende elementer i oppfinnelsen eller å avgrense oppfinnelsens ramme. Dens eneste formål er å presentere i en forenklet form noen idéer som er beskrevet her som en innledning til den mer detaljerte beskrivelsen som er gitt nedenfor.
[0007]Det følgende beskriver fremgangsmåter og systemer for å anvende visuelle effekter på aktivt innhold, så som knapper, kombinasjonsbokser, video, redigeringsfelter, etc, som bevarer interaktiviteten til det aktive innholdet. Det beskrives også en mekanisme som lar utviklere bygge opp nye visuelle effekter og anvende dem på aktivt innhold. Slike visuelle effekter omfatter for eksempel sløring, gløding, blinking, splittvisning, forstørring, krymping, uttoning, gråtoning, dreining, bølging, kombinering, glitring eller en hvilken som helst annen synlig effekt som kan bli anvendt på aktivt innhold.
[0008]Mange av de ledsagende trekkene vil lettere innses etter hvert som de forstås bedre ved å henvise til den følgende detaljerte beskrivelsen, sett i forbindelse med de vedlagte figurene.
[0009]Foreliggende oppfinnelse er særlig egnet til å tilveiebringe en fremgangsmåte for å transformere koordinater for en treffhendelse, der fremgangsmåten omfatter det å: tilveiebringe en rettet asyklisk graf som omfatter en første effekt og en siste effekt, en inngang og en utgang, den første effekten og den siste effekten inkluderer hver respektivt en første toveis transformasjonsfunksjon og en andre toveis transformasjonsfunksjon, hvor en inngang til den første effekten er koblet til inngangen til den rettede asykliske grafen, og hvor en utgang fra den siste effekten er koblet til utgangen til den rettede asykliske grafen;
fremvise et visuelt element på et område av en skjerm;
transformere det visuelle elementet ved å anvende den første toveis transformasjonsfunksjonen på det visuelle elementet som resulterer i et første-transformert visuelt element;
transformere det først-transformerte visuelle elementet ved å anvende den andre toveis transformasjonsfunksjonen på det først-transformerte visuelle elementet som resulterer i et sist-transformert visuelt element;
fremvise det sist-transformerte visuelle elementet i stedet for det visuelle elementet på skjermen;
ta imot koordinatene til treffhendelsen hvor treffhendelsen indikerer det fremviste sist-transformerte visuelle elementet;
transformere koordinatene ved å anvende den andre toveis transformasjonsfunksjonen på koordinatene i revers som resulterer i sist-transformerte koordinater;
transformere de sist-transformerte koordinatene ved å anvende den første toveis transformasjonsfunksjonen på de sist-transformerte koordinatene so resulterer i først-transformerte koordinater; og
bestemme at de først-transformerte koordinatene identifiserer et punkt i området, der fremgangsmåten er utført av an beregningsinnretning.
Foreliggende oppfinnelse er videre egnet til å tilveiebringe et system for å transformere koordinater til en treffhendelse, systemet innbefatter: en datamaskininnretning som inkluderer en skjerm;
et effektobjekt som inkluderer en inngang og en utgang, der effektobjektet videre inkluderer en første effekt og en siste effekt som hver respektivt inkluderer en første toveis transformasjonsfunksjon og en andre toveis transformasjonsfunksjon, hvor en inngang til den første effekten er koblet til inngangen til effektobjektet, og hvor en utgang fra den første effekten er koblet til en inngang til den siste effekten, og hvor en utgang fra den siste effekten er koblet til utgangen til effektobjektet;
datamaskininnretningen er konfigurert til fremvise et visuelt element på et område av skjermen;
den første effekten er konfigurert til å transformere det visuelle elementet ved å anvende den første toveis transformasjonsfunksjonen på det visuelle elementet som resulterer i et først-transformert visuelt element;
den siste effekten er konfigurert til å transformere det først-transformerte visuelle elementet ved å anvende den andre toveis transformasjonsfunksjonen på det først-transformerte visuelle elementet som resulterer i et sist-transformert visuelt element;
datamaskininnretningen er videre konfigurert til å fremvise det sist-transformerte visuelle elementet i stedet for det visuelle elementet på skjermen;
datamaskininnretningen er videre konfigurert til å ta imot koordinatene til treffhendelsen hvor treffhendelsen indikerer det fremviste sist-transformerte visuelle elementet;
den siste effekten er videre konfigurert til å transformere koordinatene ved å anvende den andre toveis transformasjonsfunksjonen på koordinatene i revers som resulterer i sist-transformerte koordinater;
den første effekten er videre konfigurert til å transformere de sist-transformerte koordinatene ved å anvende den første toveis transformasjonsfunksjonen på de sist-transformerte koordinatene som resulterer i først-transformerte koordinater; og
datamaskininnretningen er videre konfigurert til å bestemme at de først-transformerte koordinatene identifiserer et punkt i området
BESKRIVELSE AV FIGURENE
[ooi 0] Foreliggende oppfinnelse vil forstås bedre fra den følgende detaljerte beskrivelsen, sett i lys av de vedlagte figurene, der: [ooi i] Figur 1 er et blokkdiagram som viser et eksempel på effektobjekt (typen Effect).
[ooi 2] Figur 2 er et blokkdiagram som viser et eksempel på effektobjekt som omfatter forskjellige innmatings- og utmatingskoblinger.
[ooi 3] Figur 3 er et blokkdiagram som viser et eksempel på effektobjekt som inneholder to effekt-primitiver (typen EffectPrimitive), som støtter forskjellige inndata- og utdataformater.
[ooi 4] Figur 4 er et blokkdiagram som viser et eksempel på effektobjekt.
[ooi 5] Figur 5 er et blokkdiagram som viser et eksempel på knapp før og etter bruk av en eksplosjonseffekt.
[ooi 6] Figur 6 er et blokkdiagram som viser et eksempel på fremgangsmåte for å tilveiebringe én eller flere effekter på et grafisk element.
[ooi 7] Figur 7 er et blokkdiagram som viser et eksempel på fremgangsmåte for å transformere treffkoordinater for nøyaktig trefftesting på et grafisk element med én eller flere anvendte effekter,
[ooi 8] Figur 8 er et blokkdiagram som viser et generelt databehandlingsmiljø som kan anvendes i én eller flere utførelser i henhold til beskrivelsen her.
[ooi 9] Like referansenummer er anvendt for å angi like deler i de vedlagte figurene.
DETALJERT BESKRIVELSE
[0020]Den detaljerte beskrivelsen gitt nedenfor i forbindelse med de vedlagte figurene er ment som en beskrivelse av eksemplene gitt her, og er ikke ment å representere den eneste måten som eksemplene gitt her kan konstrueres eller anvendes. Beskrivelsen forklarer funksjonene i eksemplene og sekvensen av trinn for å konstruere og anvende eksempelet. Imidlertid kan de samme eller ekvivalente funksjoner og sekvenser oppnås av andre eksempler.
[0021 ] Selv om eksemplene gitt her er beskrevet og illustrert som realisert i et datasystem, er det beskrevne systemet ment som et eksempel og ikke en begrensning. Som fagmannen vil forstå er eksemplene gitt her egnet til bruk i en rekke forskjellige typer databehandlings- og grafikksystemer.
[0022]Forskjellige betegnelser anvendt i denne beskrivelsen er eksplisitt definert nedenfor. De følgende definisjoner er ment å gå foran eventuelle alternative definisjoner som kan være kjent for fagmannen.
[0023]Aktivt innhold - et grafisk element, så som en knapp, en kombinasjonsboks, et redigeringsfelt, en avkrysningsboks, et bilde, en video eller liknende som er i stand til å støtte en eller annen form for brukervekselvirkning eller som er animert i en eller annen form. Aktivt innhold kan bli rendret i minne uten å bli vist på en skjerm.
[0024]Effect - Typen Effect er et objekt som inneholder en EffectGraph (dvs. en direkte asyklisk graf (DAG - Direct Acyclic Graph)).
[0025]EffectPrimitive - Dette er en grunneffekt. Den inneholder ingen underelementer. Det er denne effekten utviklere i alminnelighet oppretter. Dette er objektet som utfører den faktiske pikselbehandlingen for effekten.
[0026]effekt - Denne betegnelsen anvendes typisk når enten et Effect-objekt eller et EffectPrimitive-objekt kan anvendes eller spesifiseres.
[0027]EffectGraph - Denne refererer til hele effektgrafen (dvs. et Effect-objekt som er det øverste Effect-objektet i en DAG av et sett av DAG'er).
[0028]kobling - Denne anvendes for å beskrive koblingspunktet (via IMILBitmapEffectlnputConnector) som en effekt eksponerer for å koble sammen effekter eller for andre formål.
[0029]Rastergrafikk - Dette er representasjon av bilder som en samling av piksler, generelt i form av et rektangulært nett eller punktgrafikk. Denne betegnelsen anvendes typisk motsatt av betegnelsen "vektorgrafikk".
[0030]Vektorgrafikk - Også kjent som geometrisk modellering, dette er bruk av geometriske primitiver, så som punkter, linjer, kurver og polygoner, til å representere bilder i datamaskingrafikk. Denne betegnelsen anvendes typisk motsatt av betegnelsen "rastergrafikk".
[0031]Grafisk element - Dette er en grafisk konstruksjon så som en knapp, et redigeringsfelt, et bilde, en meny, et ikon eller en hvilken som helst annen interaktiv eller animert grafisk konstruksjon som rendres i minne eller på en fremvisningsskjerm, et elektronisk lerret, i et brukergrensesnitt, eller liknende. Et grafisk element kan være et rastergrafikkelement, et vektorgrafikkelement eller en hvilken som helst annen form for grafisk konstruksjon.
[0032]Figur 1 er et blokkdiagram som viser et eksempel på Effect-objekt 100. Typen Effect er en samling av én eller flere EffectPrimitive-objekter, så som 104a-104d, som danner en direkte asyklisk graf (DAG). Denne effekt-DAG'en er typisk innkapslet i ett enkelt objekt 100 som eksponerer IMILBitmapEffect 106. Hvert element i Effect-objektet 100 er enten et annet Effect-objekt (dvs. implementerer IMILBitmapEffect) eller et EffectPrimitive-objekt (dvs. implementerer IMILBitmapEffectPrimitive 107). Hver effekt kan ha 0 eller flere innmatinger, så som innmatingen 108, og utmatinger, så som utmatingen 109. Hver inn/ut-kobling er beskrevet av en IMILBitmapEffectKonnector, så som eksemplene 101 og 102. Disse er koblet sammen, som eksemplifisert av forbindelsen 110, for å danne datastrømbanene gjennom effekt-DAG'en.
[0033]Effect-objektet 100 kan anvendes for å tilveiebringe en visuell effekt for aktivt innhold i punktgrafikkform, omfattende grafiske elementer så som knapper, redigeringsfelter, videografikk, eller hvilke som helst andre interaktive eller animerte grafiske elementer på en fremvisningsskjerm, et lerret, i et brukergrensesnitt, eller liknende. Effect-objektet 100 kan også brukes til å anvende en visuell effekt på punktgrafikk i minne uten at punktgrafikken noen gang blir vist. Videre kan Effect-objektet 100 eksponere andre egenskaper som beskriver attributter ved sin innmating. For eksempel kan et BitmapEffect-objekt sende ut fargehistograminformasjon eller flatedeteksjonsinformasjon. De spesifikke effektene som er tilgjengelig bestemmes i alminnelighet av Effect-objektene og EffectPrimitive-objektene inneholdt i et Effect-objekt, så som det eksemplifiserte Effect-objektet 100.
[0034]En punktgrafikkavbildning av et grafisk element blir typisk forsynt til innmatingen til det eksemplifiserte Effect-objektet 100, så som innmatingen 101. Den innmatede punktgrafikkavbildningen blir behandlet av Effect-objektet 100 for å frembringe en effekt (eller samling av effekter dersom Effect-objektet omfatter flere EffectPrimitive-objekter, så som 104a-104d, eller andre Effect-objekter), og en punktgrafikkavbildning som omfatter effekten(e) blir forsynt ved utmatingen fra Effect-objektet 100, så som utmatingen 102.
[0035]Figur 2 er et blokkdiagram som viser et eksempel på effektobjekt 200 som omfatter forskjellige inn- og utmatingskoblinger. Fordelen med å eksponere et sett av inn-/utmatingskoblinger, så som koblingen 210, i stedet for kun å eksponere et utbilde er at slike koblinger gjør det mulig å spørre om effektens inn- og utdataformater og annen informasjon uten faktisk å kjøre effekten. Hver kobling kan motta/generere bilder i flere formater. Formatene en kobling mottar/genererer kan bli listet gjennom grensesnittene IMILBitmapEffectlnputConnector eller IMILBitmapEffectOutputConnector sine metoder GetFormat() og GetNumberFormats(). Hvert koblingspunkt kan også ha et optimalt format — det formatet som effekten vil foretrekke å motta/generere som inndata/utdata. Dersom to sammenkoblede koblingspunkter har samme optimale format blir i alminnelighet dette formatet anvendt. Ellers bestemmes et annet sammenfallende format, typisk basert på det initiale utdataformatet ønsket i enden av effektgrafen. Dersom det ikke finnes noe gjensidig sammenfallende format vil da en konvertering finne sted når data strømmer fra utmatingen fra én effekt til innmatingen til den neste effekten, som vist i forbindelse med figur 3.
[0036]Figur 3 er et blokkdiagram som viser et eksempel på effektobjekt 300 som inneholder to EffectPrimitive-objekter som støtter forskjellige inn- og utdataformater. EffectPrimitivel er vist å støtte to utdataformater, MILPixelFormat24bbpBGR - den optimale utmatingen som angitt av asterisken, og et andre utdataformat, MILPixelFormat32bppARGB, EffectPrimitive2 er vist å støtte to inndataformater, der det optimale inndataformatet er det samme som det optimale utdataformatet til EffectPrimitivel Koblingen 310 mellom EffectPrimitivel og EffectPrimitive2 vil ikke forårsake noen formatkonvertering siden de har samme optimale formattype MILPixelFormat24bppBGR. EffectPrimitivel vil bli bedt om utmating i sitt optimale format, og resultatet vil bli sendt til EffectPrimitive2.
[0037]EffectPrimitive2 er vist å støtte ett enkelt utdataformat, MILPixelFormat32bppGray (dens optimale format som angitt av asterisken), og er koblet 320 til den ene utmatingen 330 fra effekten 300. Det eneste utdataformatet til effekten 300 er imidlertid MILPixelFormat32bppARGB, som er forskjellig fra det eneste utdataformatet til PrimitiveEffect2. Det vil derfor finne sted en konvertering mellom utmatingen fra EffectPrimitive2 og den endelige utmatingen fra effektgrafen 300.
[0038]I ett eksempel på hvordan inkompatible formater håndteres, dersom de optimale formatene ikke sammenfaller for grafen og effekten koblet til utmatingen fra grafen, vil det da bli bedt om det siste instruerte formatet (dvs. MILPixelFormat32bppGray som vist i figur 3). Dersom det siste instruerte utdataformatet ikke eksisterer som en utmating fra grafen, kan et tilfeldig format bli valgt.
[0039]Hver utmatingskobling (IMILBitmapEffectOutputConnector) kan være koblet til en innmating til en annen effekt i DAG'en, så lenge den opprettholder grafens asykliske natur. Denne koblingen kan være 1-til-mange (dvs. at én enkelt utmatingskobling kan bli kjedet flere innmatingskoblinger, men ikke omvendt).
[0040]Figur 4 er et blokkdiagram som viser et eksempel på effektobjekt 400. I dette eksempelet består effektobjektet 400 av en innpakning 420 bygget opp ved anvendelse av styrt kode, så som C# (C sharp), som inneholder en ikke-styrt implementasjon av den faktiske effektkoden 410, skrevet i et språk så som C++ eller liknende. Det eksemplifiserte objektet 400 har én enkelt innmating 401 og én enkelt utmating 490. I alternative eksempler kan flere innmatinger og/eller utmatinger være tilveiebrakt. Dersom formatkonvertering er nødvendig eller tilveiebrakt, er konverteringskode typisk innlemmet i innpakningsobjektet 420. Alternativt kan konverteringskode være innlemmet i den ikke-styrte kodedelen 410 eller være tilveiebrakt av en annen modul. [0041 ] Også innlemmet som del av effektobjektet 400 er en transformasjonsfunksjon F(p) 430. I ett eksempel er transformasjonsfunksjonen 430 innlemmet som del av den ikke-styrte koden 410. Transformasjonsfunksjonen 430 er den funksjonen som transformerer et innmatet grafisk element, typisk i form av en punktgrafikkavbildning, for å gi det grafiske elementet en ny visuell effekt. Generelt kan en slik transformasjonsfunksjon 430 anvendes på grafiske elementer som er basert på rastergrafikk, vektorgrafikk eller liknende.
[0042]Anta for eksempel at det er ønskelig å tilveiebringe en knapp i et brukergrensesnitt og at knappen "gløder" når musen plasseres over knappen. I et slikt tilfelle kan et glødeeffektobjekt bli opprettet og knyttet til knappen, og transformasjonsfunksjonen i glødeeffekten utfører operasjonen på punktgrafikkavbildningen av knappen for å gjøre at den synes å gløde. Merk at knappens funksjonalitet forblir uendret — bare de visuelle aspektene ved knappen blir modifisert av effekten. Nærmere bestemt kan brukeren fortsatt holde musemar-køren over knappen, klikke på knappen, etc, og knappen oppfører seg som forventet.
[0043]I et tradisjonelt brukergrensesnitt anvendes typisk "trefftesting" for å bestemme om en brukerinnmating, så som et museklikk eller et tastetrykk,
skal anvendes på et grafisk element eller aktivt innhold. Nærmere bestemt, når brukeren for eksempel klikker på en knapp, sjekker trefftestkoden koordinatene til museklikket for å bestemme om klikket ble gjort på knappen. I så fall reagerer
knappen følgelig, for eksempel med å tegne seg på nytt i nedeposisjonen, iverksette funksjonaliteten forbundet med knappen, etc.
[0044]Dersom en visuell effekt er knyttet til knappen, er det viktig at trefftesting fortsatt fungerer som forventet. I eksempelet med et glødeeffektobjekt, når musemarkøren holdes over knappen, kan et tilhørende glødeeffektobjekt gjøre at knappen får et glødende utseende. I tillegg til glødeeffekten vil knappen også bli uthevet som følge av mus-over-hendelsen, som den normalt blir. Et klikk på knappen vil også gi det forventede resultatet. I ett eksempel kan et effektobjekt knyttes til et grafisk element som en egenskap i elementet.
[0045]Figur 5 er et blokkdiagram som viser et eksempel på knapp før og etter bruk av en eksplosjonseffekt. Betrakt et effektobjekt som genererer en eksplosjonseffekt — som deler opp det aktuelle grafiske elementet i flere fragmenter og sprer dem over et brukergrensesnitt over en tidsperiode. Figur 5 viser et før-og-etter-eksempel på en slik effekt.
[0046]I ramme 501 — dvs. "før"-rammen, er brukergrensesnittet 500 vist med en tradisjonell knapp 502 før eksplosjonseffekten er anvendt, muligens som følge av en mus-over-hendelse eller en klikkehendelse på knappen. Ramme 502 — dvs. "etter"-rammen, viser samme brukergrensesnitt 500 med knappen 504 etter at eksplosjonseffekten er anvendt. Knappen 504 er vist delt i tre fragmenter 504a-504c, som er atskilt fra hverandre i brukergrensesnittet 500.
[0047]Eksplosjonseffekten implementeres delvis av en eksplosjon-transformasjonsfunksjon som avbilder hver bit i den innmatede punktgrafikken for knappen til nye posisjoner, for eksempel i flere fragmenter. Slike avbildninger kan endre seg over tid, for eksempel i et "beveger seg vekk"-aspekt ved en eksplosjon, muligens inntil fragmentene "faller til ro" et sted i brukergrensesnittet.
[0048]Uavhengig av transformasjonen fortsetter knappen å fungere som forventet. Nærmere bestemt kan brukeren klikke på et hvilket som helst fragment av den eksploderte (exploded button) knappen 504, og knappen vil oppføre seg som den ville dersom den ikke var oppdelt. Dette innebærer at trefftestkoden fortsetter å fungere som forventet. Dette lettes av brukerhendelsene som går gjennom Effect-objektet og transformasjonsfunksjonen som bestemmer om knappen ble "truffet". Dette gjøres vanligvis ved å løse transformasjonsfunksjonen i revers, eller ved å anvende en toveis transformasjonsfunksjon.
[0049]Transformasjonsfunksjoner kan utføre affine transformasjoner eller ikke-affine transformasjoner. For eksempel kan affine transformasjoner omfatte forstørring, krymping, strekking eller rotering av punktgrafikk. Ikke-affine transformasjoner kan omfatte effekter så som sløring, gløding, deformasjon, gråtoning, lysdempning, uttoning, gnistring, gjenskinn, blinking, omforming eller en hvilken som helst annen tilsvarende effekt, der elementer i punktgrafikken blir lagt til, fjernet og/eller modifisert på en eller annen måte. En transformasjonsfunksjon trenger videre ikke oversette alle de opprinnelige bitene i innmatet punktgrafikk, for eksempel når den frembringer effekter som forsvinning, krymping, utfalling, overgang til en linje eller et punkt, eller liknende. Andre mulige transformasjoner omfatter vridning, bølging, desintegrering, duplisering, sammenslåing av flere punktgrafikkavbildninger til én, eller liknende. I noen tilfeller kan effekten føre til at en bit fra innmatet punktgrafikk blir avbildet til flere steder, til ett eller flere tilfeldige steder, eller fjernet helt. I alle de følgende eksemplene gjør transformasjonsfunksjonen det også mulig å angi om den modifiserte punktgrafikkavbildningen er "truffet" av en brukerinnmating for å sikre at trefftestfunksjonaliteten fortsetter å fungere som forventet.
[0050]Figur 6 er et blokkdiagram som viser et eksempel på fremgangsmåte 600 for å tilveiebringe én eller flere effekter til et grafisk element. Et Effect-objekt, så som Effect-objektet 100 som er vist i figur 1 og anvendes i beskrivelsen av fremgangsmåten 600 nedenfor, kan anvende en slik fremgangsmåte 600. [0051 ] I trinn 610 begynner fremgangsmåten 600 med en punktgrafikkavbildning av et grafisk element tilveiebrakt ved innmatingen til Effect-objektet 100. Dette kan skje gjennom en rekke tradisjonelle programvareprosesser og/eller metoder.
[0052]I trinn 620 bestemmer en test om det finnes et neste EffectPrimitive-objekt inneholdt i Effect-objektet 100 sin DAG for å behandle punktgrafikkavbildningen. Som vist i figur 1 kan et Effect-objekt inneholde EffectPrimitive-objekter og/eller andre Effect-objekter der én eller flere av innmatingene er koblet til innmatingen til Effect-objektet 100 og hver utmating er koblet til ett eller flere ytterligere innmatinger til EffectPrimitive-objekter og/eller Effect-objekter eller til utmatingen fra Effect-objektet 100. Dersom det finnes et neste EffectPrimitive-objekt, fortsetter fremgangsmåten 600 i trinn 650. Ellers fortsetter fremgangsmåten 600 i trinn 630.
[0053]I trinn 630 bestemmer en test om et neste Effect-objekt er inneholdt i Effect-objektets 100 DAG. Dersom det finnes et neste Effect-objekt, for eksempel "Effect-objekt B", fortsetter fremgangsmåten i trinn 610 for Effect-objekt B. Ellers fortsetter fremgangsmåten 600 i trinn 640.
[0054]I trinn 640 er den innmatede punktgrafikkavbildningen ferdig behandlet av Effect-objektet 100, og den behandlede punktgrafikkavbildningen blir forsynt til utmatingen. Dette kan skje gjennom en rekke mulige tradisjonelle programvareprosesser og/eller metoder.
[0055]I trinn 650 blir punktgrafikkavbildningen, som kan ha blitt behandlet av eventuelle foregående EffectPrimitive-objekter og/eller Effect-objekter, sendt til innmatingen til det neste EffectPrimitive-objektet. Dette kan skje gjennom en rekke mulige tradisjonelle programvare prosesser og/eller metoder.
[0056]I trinn 660 bestemmer en test om punktgrafikkavbildningen er i et akseptabelt format for behandling av EffectPrimitive-objektet. I så fall fortsetter fremgangsmåten 600 i trinn 680. Ellers fortsetter fremgangsmåten 600 i trinn 670.
[0057]I trinn 670 blir punktgrafikkavbildningen konvertert eller omformatert til et akseptabelt format for behandling av det neste EffectPrimitive-objektet. I ett eksempel kan punktgrafikkavbildningen bli omformatert til et optimalt format.
[0058]I trinn 680 blir en transformasjonsfunksjon, så som transformasjonsfunksjonen F(p) 430 vist i figur 4, anvendt på den innmatede punktgrafikkavbildningen, noe som typisk resulterer i at én eller flere effekter blir anvendt på punktgrafikkavbildningen eller at en ny punktgrafikkavbildning blir generert fra den innmatede punktgrafikkavbildningen, der den nye punktgrafikkavbildningen omfatter effekten(e). Fremgangsmåten 600 fortsetter i trinn 620.
[0059]Figur 7 er et blokkdiagram som viser et eksempel på fremgangsmåte 700 for å transformere treffkoordinater for nøyaktig trefftesting på et grafisk element med én eller flere anvendte effekter. Fordi et grafisk element med én eller flere effekter kan befinne seg i et annet brukergrensesnitt enn det ville uten effekten(e), er typisk transformasjon av treffkoordinater, så som en museklikk- eller mus-over-hendelse nødvendig for å sikre korrekt trefftesting. Et Effect-objekt, så som Effect-objektet 100 vist i figur 1 og anvendt i beskrivelsen av fremgangsmåten 700 nedenfor, kan anvende en slik fremgangsmåte 700.
[0060]I trinn 710 begynner fremgangsmåten 700 med at koordinatene for en brukerhendelse, så som en museklikk- eller mus-over-hendelse, forsynes til en innmating til Effect-objektet 100. Dette kan skje gjennom en rekke mulige tradisjonelle programvareprosesser og/eller metoder. [0061 ] I trinn 720 bestemmer en test om det finnes et foregående EffectPrimitive-objekt inneholdt i Effect-objektets 100 DAG for å transformere koordinatene. Som vist i figur 1 kan et Effect-objekt, så som det eksemplifiserte Effect-objektet 100, inneholde EffectPrimitive-objekter og/eller andre Effect-objekter der én eller flere av innmatingene er koblet til innmatingen til Effect-objektet 100 og hver utmating er koblet til én eller flere innmatinger til ytterligere EffectPrimitive- og/eller Effect-objekter, eller til utmatingen fra Effect-objektet 100. Fremgangsmåten 700 begynner med det siste slike effektobjektet i DAG-grafen og jobber seg forover for å bevirke koordinattransformasjon. Et "foregående" effektobjekt er et effektobjekt i DAG-grafen med start ved utmatingen fra Effect-objekt og videre bakover gjennom alle Effect-objekter i DAG-grafen mot innmatingen til Effect-objektet. For eksempel er EffectPrimitive-objektet 104d foregående til Effect-objektet 100 sin utmating 102, EffectPrimitive-objektene 104a, 104b og 104c er foregående til 104d, og EffectPrimitive-objektet 104b er også foregående til 104c. Dersom det finnes et foregående EffectPrimitive-objekt, fortsetter fremgangsmåten 700 i trinn 730. Ellers fortsetter fremgangsmåten 700 i trinn 740.
[0062]I trinn 730 blir en transformasjonsfunksjon, så som transformasjonsfunksjonen F(p) 430 vist i figur 4, anvendt på koordinatene til brukerens punktgrafikkavbildning. Transformasjonsfunksjonen blir typisk anvendt i revers. Fremgangsmåten 700 fortsetter i trinn 720.
[0063]I trinn 740 bestemmer en test om det finnes et foregående Effect-objekt inneholdt i Effect-objektets 100 DAG-graf. Dersom det finnes et foregående Effect-objekt, f.eks. "Effect-objekt A", fortsetter fremgangsmåten i trinn 710 for Effect-objekt A. Ellers fortsetter fremgangsmåten 700 i trinn 750.
[0064]I trinn 750 forsyner fremgangsmåten 700 de transformerte koordinatene for brukerhendelsen til trefftestkode eller liknende.
[0065]Figur 8 er et blokkdiagram som viser et generelt databehandlingsmiljø 800 som kan anvendes i én eller flere utførelser i henhold til beskrivelsen gitt her. Datasystemmiljøet 800 er bare ett eksempel på et passende databehandlingsmiljø, og er ikke ment å antyde noen som helst begrensning når det gjelder bruksområdet eller funksjonaliteten til oppfinnelsen det kreves beskyttelse for. Heller ikke skal databehandlingsmiljøet 800 tolkes som å ha noen som helst avhengighet eller krav vedrørende noen som helst enkeltkomponent eller kombinasjon av komponenter illustrert i det eksemplifiserte kjøremiljøet 800.
[0066]De beskrevne fremgangsmåter og objekter kan anvendes med en rekke forskjellige andre generelle eller spesialiserte datasystemmiljøer eller - anordninger. Eksempler på velkjente datasystemer, -miljøer og/eller - anordninger som kan være egnet til bruk omfatter, men er ikke begrenset til personlige datamaskiner, tjenermaskiner, håndholdte anordninger eller bærbare datamaskinanordninger, flerprosessorsystemer, mikroprosessorbaserte systemer, dekoderbokser, programmerbar forbrukerelektronikk, personlige datamaskiner tilknyttet nettverk, minidatamaskiner, stormaskiner, distribuerte databehandlingsmiljøer som omfatter hvilke som helst av de ovenfor angitte systemer eller anordninger, og liknende.
[0067]Den følgende beskrivelsen kan gis i den generelle sammenhengen datamaskin-utførbare instruksjoner, så som programmoduler, som eksekveres av en datamaskin. Generelt omfatter programmoduler rutiner, programmer, objekter, komponenter, datastrukturer, etc. som utfører bestemte oppgaver eller implementerer bestemte abstrakte datatyper. De beskrevne utførelsene kan også praktiseres i distribuerte databehandlingsmiljøer der oppgaver blir utført av fjerne prosesseringsanordninger som er sammenkoblet gjennom et kommunikasjonsnettverk. I et distribuert databehandlingsmiljø kan programmoduler befinne seg i både lokale og fjerne datalagringsmedier, omfattende minnelagringsanordninger.
[0068]Med henvisning til figur 8 omfatter et eksempel på system for å realisere oppfinnelsen en generell databehandlingsanordning i form av en datamaskin 810. Komponenter i datamaskinen 810 kan omfatte, men er ikke begrenset til en prosesseringsenhet 820, et systemminne 830 og en systembuss 821 som kobler forskjellige systemkomponenter omfattende systemminnet til prosesseringsenheten 820. Systembussen 821 kan være en hvilken som helst av forskjellige typer busstrukturer, omfattende en minnebuss eller minnestyringsenhet, en ekstern buss og en lokal buss, som anvender en hvilken som helst av en rekke forskjellige bussarkitekturer. Som et eksempel, og ikke en begrensning omfatter slike arkitekturer en ISA-(lndustry Standard Architecture)-buss, en MCA-(Micro Channel Architecture)-buss, en Enhanced ISA (EISA) buss, en lokal VESA-(Video Electronics Standards Association)-buss og en PCI-(Peripheral Component lnterconnect)-buss, også kjent som en Mezzanine-buss.
[0069]Datamaskinen 810 omfatter typisk en rekke forskjellige datamaskinlesbare medier. Datamaskinlesbare medier kan være hvilke som helst tilgjengelige medier som kan aksesseres av datamaskinen 810, og omfatter både volatile og ikke-volatile medier samt flyttbare og stasjonære medier. Som et eksempel, og ikke en begrensning kan datamaskinlesbare medier omfatte datalagringsmedier og kommunikasjonsmedier. Datalagringsmedier omfatter volatile og ikke-volatile, flyttbare og stasjonære medier realisert med en hvilken som helst metode eller teknologi for lagring av informasjon, så som datamaskinlesbare instruksjoner, datastrukturer, programmoduler eller andre data. Datalagringsmedier omfatter, men er ikke begrenset til RAM, ROM, EEPROM, flashminne eller annen minneteknologi, CD-ROM, DVD eller andre optiske platelagre, magnetkasetter, magnetbånd, magnetplatelagre eller andre magnetiske lagringsanordninger, eller et hvilket som helst annet medium som kan anvendes for å lagre den ønskede infor-masjonen og som kan aksesseres av datamaskinen 810. Kommunikasjonsmedier inneholder typisk datamaskinlesbare instruksjoner, datastrukturer og/eller programmer. Enhver kombinasjon av hvilke som helst av det ovennevnte skal også være omfattet innenfor rammen av datamaskinlesbare medier.
[0070]Systemminnet 830 omfatter datalagringsmedier i form av volatilt og/eller ikke-volatilt minne, så som leseminne (ROM) 831 og direkteaksessminne (RAM) 832. Et grunnleggende inn/ut-system 833 (BIOS), som inneholder de grunnleggende rutinene som bidrar til å overføre informasjon mellom elementer i datamaskinen 810, foreksempel under oppstart, er typisk lagret i ROM 831. RAM 832 inneholder typisk data og/eller programmoduler som er umiddelbart tilgjengelige for og/eller jobbes med av prosesseringsenheten 820. Som et eksempel, og ikke en begrensning illustrerer figur 8 et operativsystem 834, applikasjonsprogrammer 835, andre programmoduler 836 og programdata 837. [0071 ] Datamaskinen 810 kan også omfatte andre flyttbare/stasjonære, volatile/ikke-volatile datalagringsmedier. Kun som et eksempel illustrerer figur 8 et harddiskdrev 841 som leser fra eller skriver til stasjonære, ikke-volatile magnetiske medier, et magnetplatedrev 851 som leser fra eller skriver til et flyttbart, ikke-volatilt magnetplatelager 852, og et optisk platedrev 855 som leser fra eller skriver til et flyttbart, ikke-volatilt optisk platelager 856, så som et CD-ROM eller annet optisk medium. Andre flyttbare/stasjonære, volatile/ikke-volatile datalagringsmedier som kan anvendes i det eksemplifiserte kjøremiljøet omfatter, men er ikke begrenset til magnetbånd/-kasetter, flashminnekort, DVD, digitalt videobånd, monolittisk RAM (solid state RAM), monolittisk ROM (solid state ROM) og liknende. Harddiskdrevet 841 er typisk koblet til systembussen 821 gjennom et grensesnitt for stasjonært minne, så som grensesnittet 840, og magnetplatedrevet 851 og det optiske platedrevet 855 er typisk koblet til systembussen 821 via et grensesnitt for flyttbart minne, så som grensesnittet 850.
[0072]Drevene og deres tilhørende datalagringsmedier beskrevet over og illustrert i figur 8 muliggjør lagring av datamaskinlesbare instruksjoner, datastrukturer, programmoduler og andre data for datamaskinen 810. I figur 8 er for eksempel harddiskdrevet 841 illustrert som lagrende et operativsystem 844, applikasjonsprogrammer 845, andre programmoduler 846 og programdata 847. Merk at disse komponentene enten kan være de samme som eller forskjellige fra operativsystem 834, applikasjonsprogrammer 835, andre programmoduler 836 og programdata 837. Operativsystem 844, applikasjonsprogrammer 845, andre programmoduler 846 og programdata 847 er gitt forskjellige referansenummer her for å illustrere det at de i det minste er forskjellige kopier. En bruker kan mate inn kommandoer og informasjon til datamaskinen 810 gjennom innmatingsanordninger, så som et tastatur 862 og en pekeranordning 861, vanligvis omfattende en mus, styrekule eller berøringsmatte. Andre innmatingsanordninger (ikke vist) kan omfatte en mikro-fon, styrespak, spillkontroll, parabolantenne, skanner eller liknende. Disse og andre innmatingsanordninger er ofte koblet til prosesseringsenheten 820 gjennom et brukerinnmatingsgrensesnitt 860 som er koblet til systembussen 821, men kan også være tilkoblet via andre grensesnitt og busstrukturer, så som en parallellport, spillport eller USB-port. En dataskjerm 891 eller en annen type fremvisningsanordning er også koblet til systembussen 821 via et grensesnitt, så som et skjermgrensesnitt 890. I tillegg til dataskjermen kan datamaskiner også omfatte andre eksterne utmatingsanordninger, så som høyttalere 897 og en skriver 896, som kan være tilkoblet gjennom et grensesnitt 895 for utmating til eksterne enheter. Et kamera 863 (så som et digitalt/elektronisk stillbilde- eller videokamera, eller en film-/fotografiskanner) som er i stand til å ta en sekvens av bilder 864, kan også være omfattet som en innmatingsanordning til den personlige datamaskinen 810. Selv om kun ett kamera er vist vil også flere kameraer kunne være omfattet som innmatingsanordninger til den personlige datamaskinen 810. Bildene 864 fra det ene eller de flere kameraene blir matet inn til datamaskinen 810 gjennom et passende kameragrensesnitt 865. Dette grensesnittet 865 er koblet til systembussen 821, slik at bildene kan bli sendt til og lagret i RAM 832 eller en av de andre datalagringsanordningene tilknyttet datamaskinen 810. Det skal imidlertid bemerkes at bildedata også kan bli matet inn til datamaskinen 810 fra et hvilken som helst av ovennevnte datamaskinlesbare mediene uten å kreve bruk av kameraet 863.
[0073]Datamaskinen 810 kan kjøre i et nettverksmiljø som anvender logiske forbindelser til én eller flere fjerne datamaskiner, så som en fjern datamaskin 880. Den fjerne datamaskinen 880 kan være en personlig datamaskin, en tjener, en ruter, en nettverkstilknyttet PC, en peer-anordning eller en annen vanlig nettverksnode, og omfatter typisk mange av eller alle elementene beskrevet over i forbindelse med datamaskinen 810, selv om bare en minnelagringsanordning 881 er illustrert i figur 8. De logiske forbindelsene vist i figur 8 omfatter et lokalt nettverk (LAN) 871 og et regionalt nettverk (WAN) 873, men kan også omfatte andre nettverk. Slike nettverksmiljøer er vanlige i kontorer, bedriftsdatanettverk, intranett og på Internett.
[0074]Når den anvendes i et LAN-miljø, er datamaskinen 810 koblet til
LAN 871 gjennom et nettverksgrensesnitt eller -adapter 870. Når den anvendes i et WAN-miljø, omfatter datamaskinen 810 typisk et modem 872 eller en annen anordning for å etablere kommunikasjon over WAN 873, for eksempel Internett. Modemet 872, som kan være internt eller eksternt, kan være koblet til systembussen 821 via brukerinnmatingsgrensesnittet 860 eller en annen passende mekanisme. I et nettverksmiljø kan programmoduler vist i datamaskinen 810, eller deler av disse, være lagret i den fjerne minnelagringsanordningen. Som et eksempel, og ikke en begrensning illustrerer figur 8 fjerne applikasjonsprogrammer 885 som lagret på minneanordningen 881. Det vil forstås at de viste nettverksforbindelsene kun er eksempler, og at andre anordninger for å opprette en kommunikasjonsforbindelse mellom datamaskinene kan anvendes.
[0075]Selv om ett eller flere utførelseseksempler er illustrert og beskrevet her, vil det forstås at en kan gjøre forskjellige endringer i disse uten å fjerne seg fra de vedføyde kravenes ramme og idé.

Claims (13)

1. Fremgangsmåte for å transformere koordinater for en treffhendelse, der fremgangsmåten omfatter det å: tilveiebringe en rettet asyklisk graf som omfatter en første effekt og en siste effekt, en inngang og en utgang, den første effekten og den siste effekten inkluderer hver respektivt en første toveis transformasjonsfunksjon og en andre toveis transformasjonsfunksjon, hvor en inngang til den første effekten er koblet til inngangen til den rettede asykliske grafen, og hvor en utgang fra den siste effekten er koblet til utgangen til den rettede asykliske grafen; fremvise et visuelt element på et område av en skjerm; transformere det visuelle elementet ved å anvende den første toveis transformasjonsfunksjonen på det visuelle elementet som resulterer i et første-transformert visuelt element; transformere det først-transformerte visuelle elementet ved å anvende den andre toveis transformasjonsfunksjonen på det først-transformerte visuelle elementet som resulterer i et sist-transformert visuelt element; fremvise det sist-transformerte visuelle elementet i stedet for det visuelle elementet på skjermen; ta imot koordinatene til treffhendelsen hvor treffhendelsen indikerer det fremviste sist-transformerte visuelle elementet; transformere koordinatene ved å anvende den andre toveis transformasjonsfunksjonen på koordinatene i revers som resulterer i sist-transformerte koordinater; transformere de sist-transformerte koordinatene ved å anvende den første toveis transformasjonsfunksjonen på de sist-transformerte koordinatene so resulterer i først-transformerte koordinater; og bestemme at de først-transformerte koordinatene identifiserer et punkt i området, der fremgangsmåten er utført av an beregningsinnretning.
2. Fremgangsmåte ifølge krav 1, der det grafiske elementet er en punktgrafikkavbildning.
3. Fremgangsmåte ifølge krav 1, der det grafiske elementet inkluderer video.
4. Fremgangsmåte ifølge krav 1, videre innbefatter konvertering av det grafiske elementet til en punktgrafikkavbildning.
5. Fremgangsmåte ifølge krav 1, der det grafiske elementet animeres.
6. Lagringsmedia for datamaskin innbefattende datamaskinutførbare instruksjoner som, når de blir utført i en datamaskininnretning, forårsaker at datamaskininnretningen utfører en fremgangsmåte for å transformere koordinater til en treffhendelse, der fremgangsmåten innbefatter: tilveiebringe en rettet asyklisk graf som omfatter en første effekt og en siste effekt, en inngang og en utgang, den første effekten og den siste effekten inkluderer hver respektivt en første toveis transformasjonsfunksjon og en andre toveis transformasjonsfunksjon, hvor en inngang til den første effekten er koblet til inngangen til den rettede asykliske grafen, og hvor en utgang fra den siste effekten er koblet til utgangen til den rettede asykliske grafen; fremvise et visuelt element på et område av en skjerm; transformere det visuelle elementet ved å anvende den første toveis transformasjonsfunksjonen på det visuelle elementet som resulterer i et først-transformert visuelt element; transformere det først-transformerte visuelle elementet ved å anvende den andre toveis transformasjonsfunksjonen på det først-transformerte visuelle elementet som resulterer i et sist-transformert visuelt element; fremvise det sist-transformerte visuelle elementet i stedet for det visuelle elementet på skjermen; ta imot koordinatene til treffhendelsen hvor treffhendelsen indikerer det fremviste sist-transformerte visuelle elementet; transformere koordinatene ved å anvende den andre toveis transformasjonsfunksjonen på koordinatene i revers som resulterer i sist-transformerte koordinater; transformere de sist-transformerte koordinatene ved å anvende den første toveis transformasjonsfunksjonen på de sist-transformerte koordinatene som resulterer i først-transformerte koordinater; og bestemme at de først-transformerte koordinatene identifiserer et punkt i området, der fremgangsmåten er utført av an beregningsinnretning.
7. Fremgangsmåte ifølge krav 1, der det grafiske elementet er en punktgrafikkavbildning.
8. Fremgangsmåte ifølge krav 1, der det grafiske elementet inkluderer video.
9. Fremgangsmåte ifølge krav 1, der det grafiske elementet animeres.
10. System for å transformere koordinater til en treffhendelse, systemet innbefatter: en datamaskininnretning som inkluderer en skjerm; et effektobjekt som inkluderer en inngang og en utgang, der effektobjektet videre inkluderer en første effekt og en siste effekt som hver respektivt inkluderer en første toveis transformasjonsfunksjon og en andre toveis transformasjonsfunksjon, hvor en inngang til den første effekten er koblet til inngangen til effektobjektet, og hvor en utgang fra den første effekten er koblet til en inngang til den siste effekten, og hvor en utgang fra den siste effekten er koblet til utgangen til effektobjektet; datamaskininnretningen er konfigurert til fremvise et visuelt element på et område av skjermen; den første effekten er konfigurert til å transformere det visuelle elementet ved å anvende den første toveis transformasjonsfunksjonen på det visuelle elementet som resulterer i et først-transformert visuelt element; den siste effekten er konfigurert til å transformere det først-transformerte visuelle elementet ved å anvende den andre toveis transformasjonsfunksjonen på det først-transformerte visuelle elementet som resulterer i et sist-transformert visuelt element; datamaskininnretningen er videre konfigurert til å fremvise det sist-transformerte visuelle elementet i stedet for det visuelle elementet på skjermen; datamaskininnretningen er videre konfigurert til å ta imot koordinatene til treffhendelsen hvor treffhendelsen indikerer det fremviste sist-transformerte visuelle elementet; den siste effekten er videre konfigurert til å transformere koordinatene ved å anvende den andre toveis transformasjonsfunksjonen på koordinatene i revers som resulterer i sist-transformerte koordinater; den første effekten er videre konfigurert til å transformere de sist-transformerte koordinatene ved å anvende den første toveis transformasjonsfunksjonen på de sist-transformerte koordinatene som resulterer i først-transformerte koordinater; og datamaskininnretningen er videre konfigurert til å bestemme at de først-transformerte koordinatene identifiserer et punkt i området.
11. System ifølge krav 10 hvor det visuelle elementet er en punktgrafikkavbildning.
12. System ifølge krav 10, hvor det visuelle elementet animeres.
13. System ifølge krav 10, hvor det visuelle elementet inkluderer video.
NO20080709A 2005-09-13 2008-02-08 Utvidbare synlige effekter for aktivt innhold i brukergrensesnitt NO338043B1 (no)

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 (2)

Publication Number Publication Date
NO20080709L NO20080709L (no) 2008-04-14
NO338043B1 true NO338043B1 (no) 2016-07-25

Family

ID=37856794

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20080709A NO338043B1 (no) 2005-09-13 2008-02-08 Utvidbare synlige effekter for aktivt innhold i brukergrensesnitt

Country Status (11)

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

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
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
US10313505B2 (en) 2006-09-06 2019-06-04 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
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
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
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
US8619038B2 (en) 2007-09-04 2013-12-31 Apple Inc. Editing interface
US11126321B2 (en) 2007-09-04 2021-09-21 Apple Inc. Application menu user 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
EP2880636B1 (en) * 2012-08-03 2022-01-05 DreamWorks Animation LLC Constraint evaluation in directed acyclic graphs
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490246A (en) * 1991-08-13 1996-02-06 Xerox Corporation Image generator using a graphical flow diagram with automatic generation of output windows
EP0977157A2 (en) * 1998-07-31 2000-02-02 Sony United Kingdom Limited Animation of video special effects
EP0977146A2 (en) * 1998-07-31 2000-02-02 Sony United Kingdom Limited Digital video processing
US6522331B1 (en) * 2000-02-01 2003-02-18 Stormfront Studios, Inc. Character animation using directed acyclic graphs

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2603982B2 (ja) * 1988-02-12 1997-04-23 日本放送協会 映像信号処理システムのマルチプロセッサ結合装置
GB2340362B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
US7009626B2 (en) * 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
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
US7519233B2 (en) * 2005-06-24 2009-04-14 Microsoft Corporation Accumulating transforms through an effect graph in digital image processing
US7295208B2 (en) * 2005-06-24 2007-11-13 Microsoft Corporation Translating layers into effect graphs in digital image processing
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
US7619628B2 (en) * 2005-06-24 2009-11-17 Microsoft Corporation Caching digital image data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490246A (en) * 1991-08-13 1996-02-06 Xerox Corporation Image generator using a graphical flow diagram with automatic generation of output windows
EP0977157A2 (en) * 1998-07-31 2000-02-02 Sony United Kingdom Limited Animation of video special effects
EP0977146A2 (en) * 1998-07-31 2000-02-02 Sony United Kingdom Limited Digital video processing
US6522331B1 (en) * 2000-02-01 2003-02-18 Stormfront Studios, Inc. Character animation using directed acyclic graphs

Also Published As

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

Similar Documents

Publication Publication Date Title
NO338043B1 (no) Utvidbare synlige effekter for aktivt innhold i brukergrensesnitt
Fernando et al. The Cg Tutorial: The definitive guide to programmable real-time graphics
US8380005B1 (en) System and method for image composition using non-destructive editing model and fast gradient solver
JP4700423B2 (ja) 形状を使用する共通チャーティング
US11087430B2 (en) Customizable render pipelines using render graphs
US7428542B1 (en) Method and system for combining nodes into a mega-node
US20080016491A1 (en) Multimedia scripting
US7636097B1 (en) Methods and apparatus for tracing image data
WO2008127517A1 (en) Graphics command management tool and methods for analyzing performance for command changes before application modification
JPH11328447A (ja) 複雑なシ―ンの選択的部分レンダリング自動発生システム
AU2008299578B2 (en) A system and method for capturing digital images
EP3861432A1 (fr) Procédé pour générer une liaison entre une bibliothèque c/c++ et un langage interprété, et mise en oeuvre de ce procédé pour la transformation d'un modèle tridimensionnel (3d)
US20090282390A1 (en) Parallel Run-Time Rendering Debugger
US9153193B2 (en) Primitive rendering using a single primitive type
KR20040021563A (ko) 화면 표시 처리 장치, 화면 표시 처리 방법 및 컴퓨터프로그램
CN106886974A (zh) 图像加速器设备及相关方法
Escrivá et al. Building Computer Vision Projects with OpenCV 4 and C++: Implement complex computer vision algorithms and explore deep learning and face detection
CN116712727A (zh) 同屏画面渲染方法、装置及电子设备
CN116628250A (zh) 图像生成方法、装置、电子设备及计算机可读取存储介质
Joshi et al. Graphics programming for the web
KR102650940B1 (ko) 2d/3d 모델을 렌더링하기 위한 컴퓨터 구현 방법 및 프로그래밍 가능한 시스템
Tschumperlé et al. G'MIC 3.4. 0: Image Processing in Its Prime!
Wirth Advanced HDR image viewer
Donohoe Khoros
Müller et al. Soundium’s design tree: Supporting multimedia composition and performance

Legal Events

Date Code Title Description
CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: MICROSOFT TECHNOLOGY LICENSING, US

MM1K Lapsed by not paying the annual fees