2014-03-24 10 views
0

ClutterTexture가 이제는 사용되지 않음으로 표시됨에 따라 나는 권장 사항을 따르고 Pixbuf로 설정된 콘텐츠를 가진 ClutterActor로 바꿨습니다.깨끗한 액터 콘텐츠가 블렌드하지 않습니다

from gi.repository import Clutter, GdkPixbuf, Cogl 

Clutter.init([]) 
stage = Clutter.Stage() 
stage.set_size(600, 300) 

# old style 
texture_actor = Clutter.Texture(filename='icon_big_a.png') 
texture_actor.set_opacity(127) 
stage.add_child(texture_actor) 

# replacement because ClutterTexture is deprecated 
pixbuf = GdkPixbuf.Pixbuf.new_from_file('icon_big_b.png') 
pixel_format = Cogl.PixelFormat.RGBA_8888 if pixbuf.get_has_alpha() \ 
    else Cogl.PixelFormat.RGB_888 

image = Clutter.Image() 
image.set_data(
    pixbuf.get_pixels(), 
    pixel_format, 
    pixbuf.get_width(), 
    pixbuf.get_height(), 
    pixbuf.get_rowstride(), 
) 

image_actor = Clutter.Actor() 
image_actor.set_content_scaling_filters(
    Clutter.ScalingFilter.TRILINEAR, 
    Clutter.ScalingFilter.LINEAR 
) 
image_actor.set_content(image) 
image_actor.set_size(pixbuf.get_width(), pixbuf.get_height()) 
image_actor.set_opacity(127) 
image_actor.move_by(300, 0) 
stage.add_child(image_actor) 

stage.show() 
Clutter.main() 

모든 것이 작동하지만 불투명도를 127로 변경하면 흰색 인 경우에도 배경이 어두워집니다. 내가 설정 한 경우

Here is a git repo with code and screenshot of the problem

255 모든 것에 불투명도는해야처럼 흰색이 다음 흰색입니다 보인다.

답변