graphicscomposition/openwfcompositionengine/composition/src/wfcpipeline.c
branchNewGraphicsArchitecture
changeset 39 a4b63488e0b0
parent 0 5d03bc08d59c
equal deleted inserted replaced
38:352185384b8a 39:a4b63488e0b0
   100     state->blendInfo.destination.rectangle = &state->dstRect;
   100     state->blendInfo.destination.rectangle = &state->dstRect;
   101     state->blendInfo.source.image          = state->scaledSourceImage;
   101     state->blendInfo.source.image          = state->scaledSourceImage;
   102     state->blendInfo.source.rectangle      = &state->scaledSrcRect;
   102     state->blendInfo.source.rectangle      = &state->scaledSrcRect;
   103     state->blendInfo.mask                  = state->originalMaskImage ? state->maskImage : NULL;
   103     state->blendInfo.mask                  = state->originalMaskImage ? state->maskImage : NULL;
   104     state->blendInfo.globalAlpha           = state->globalAlpha;
   104     state->blendInfo.globalAlpha           = state->globalAlpha;
   105     
       
   106     /* composition does not use these values ever */
       
   107     state->blendInfo.tsColor                = NULL;
       
   108     state->blendInfo.destinationFullyOpaque = OWF_FALSE;    
       
   109     
   105     
   110     DPRINT(("  globalAplha = %f", state->globalAlpha));
   106     DPRINT(("  globalAplha = %f", state->globalAlpha));
   111     /* no need to check with OWF_ALPHA_MIN_VALUE as it is zero */
   107     /* no need to check with OWF_ALPHA_MIN_VALUE as it is zero */
   112     OWF_ASSERT(state->blendInfo.globalAlpha <= OWF_ALPHA_MAX_VALUE);    
   108     OWF_ASSERT(state->blendInfo.globalAlpha <= OWF_ALPHA_MAX_VALUE);    
   113 }
   109 }
   350     state->rotation = element->sourceRotation;
   346     state->rotation = element->sourceRotation;
   351     state->sourceFlip = element->sourceFlip;
   347     state->sourceFlip = element->sourceFlip;
   352     state->globalAlpha = element->globalAlpha;
   348     state->globalAlpha = element->globalAlpha;
   353     state->sourceScaleFilter = element->sourceScaleFilter;
   349     state->sourceScaleFilter = element->sourceScaleFilter;
   354     state->transparencyTypes = element->transparencyTypes;
   350     state->transparencyTypes = element->transparencyTypes;
       
   351 
       
   352     if (state->transparencyTypes & WFC_TRANSPARENCY_ELEMENT_GLOBAL_ALPHA)
       
   353         {
       
   354         if (state->globalAlpha == OWF_FULLY_TRANSPARENT)
       
   355             {
       
   356             /* Fully transparent element - no contribution. */
       
   357             return NULL;
       
   358             }
       
   359         if (state->globalAlpha == OWF_FULLY_OPAQUE)
       
   360             {
       
   361             /* Fully opaque global alpha - global alpha can be ignored */
       
   362             state->transparencyTypes &= ~WFC_TRANSPARENCY_ELEMENT_GLOBAL_ALPHA;
       
   363             }
       
   364         }
       
   365     
   355     /* replicate the source viewport rectangle and target extent rectangle */
   366     /* replicate the source viewport rectangle and target extent rectangle */
   356     for (x = 0; x < 4; x++)
   367     for (x = 0; x < 4; x++)
   357     {
   368     {
   358         state->sourceRect[x] = element->srcRect[x];
   369         state->sourceRect[x] = element->srcRect[x];
   359         state->destinationRect[x] = element->dstRect[x];
   370         state->destinationRect[x] = element->dstRect[x];