私のアプリケーションは C で書かれており、DirectFB を Lua コードに公開しています。そのため、コードが奇妙に見えるかもしれませんが、多かれ少なかれ C で直接実行できることです。
したがって、まず第一に、プライマリ レイヤーを取得し、それから surface を取得します。
layer = SelLayer.GetLayer(0) -- Get primary layer
layer:SetCooperativeLevel( SelLayer.CooperativeLevelConst('ADMINISTRATIVE') )
psrf = layer:GetSurface()
その上にいくつかのグラフィックを作成します。OK、問題ありません。動作しています。
次に、その上にウィンドウを作成したいと思います:
local window = layer:CreateWindow {
pos = {50,50}, size = {200,200},
caps=SelWindow.CapsConst('NONE'),
stacking=SelWindow.StackingConst("UPPER"),
surface_caps=SelSurface.CapabilityConst('NONE')
}
window:SetOpacity(0xff) -- Make it visible
rdc_srf = window:GetSurface() -- Get its surface
しかし、その上にグラフィックを作成している場合
rdc_srf:Clear(60,60,60,100)
rdc_srf:Flip(SelSurface.FlipFlagsConst("BLIT"))
表示されることはありません。レイヤーの表面のみが表示されます。さまざまなフリップ オプションを試しましたが、うまくいきませんでした。
私の間違いはどこですか?レイヤ サーフェス上で直接作業して、その上にウィンドウを配置することはできませんか?
ありがとう