Hi,
I have this problem. I am using DSA to render my video.
Since I am using the MMF architecture for symbian 8.0a for the series 60 phone I am rendering in a different (non UI) thread.

I am creating the windows session, window group and window in my backend thread. But then my UI thread window stops updating. This is a problem of my understanding RWindows and the windows server architecture. Can you please help me?

I have pasted the code that I am using below.

ConstructL()
{
/* construct the screen device, we will require this for DSA */
idevice = new (ELeave)CWsScreenDevice(iClient);
User::LeaveIfError(idevice->Construct());

/* construct the window, we will require this for DSA */
iwindowGroup = RWindowGroup(iClient);

/* '2' here is meaningless */
User::LeaveIfError(iwindowGroup.Construct(winGroupHandle, EFalse));
iwindowGroup.SetOrdinalPosition(0);

// construct a new window for the window group
iwindow = RWindow(iClient);

/* '2+1' here is again meaningless */
User::LeaveIfError(iwindow.Construct(iwindowGroup ,2+1));
iwindow.SetBackgroundColor(KRgbWhite);

iwindow.Activate();
iwindow.SetVisible(ETrue);

ipDirectScreenAccess = CDirectScreenAccess::NewL(
iClient, // WS session
*idevice, // CWsScreenDevice
iwindow, // RWindowBase
*this // MDirectScreenAccess
);

TRAPD(err, ipDirectScreenAccess->StartL());
ipGc = ipDirectScreenAccess->Gc();
// Get region that DSA can draw in
ipRegion = ipDirectScreenAccess->DrawingRegion();

// Set the display to clip to this region
ipGc->SetClippingRegion(ipRegion);

}

RunL()
{
ipGc->Activate(ipDirectScreenAccess->ScreenDevice());
ipDirectScreenAccess->ScreenDevice()->Update();
ipGc->BitBlt(TPoint(ClipRect.iTl.iX, ClipRect.iTl.iY), pBitmap);
iClient.Flush();
}


Please mail me your thoughts at hussainkothari@hotmail.com

Awaiting your reply.

thx in advance