On 08/11/2010 13:45, Benjamin Smedberg wrote:
This really doesn't make any sense. The way to get a canvas rendering context is to create a <canvas> element and then call .getContext('2d') on it. Otherwise your rendering context isn't actually backed by a drawing buffer.

--BDS

I may well be mistaken :). The full sequence I've actually coded is below. Still not quite sure how to get bitmap data from the context but this should associate a canvas with the context?

// create context
nsCOMPtr<nsICanvasRenderingContextInternal> context;
context = do_CreateInstance("@mozilla.org/content/canvas-rendering-context;1?id=2d", &rv);
    if (!(NS_SUCCEEDED(rv) && context))
    {
        return 0;
    }

    context->SetDimensions(widthIn,heightIn);
    context->SetCanvasElement(nsnull);

// create canvas
    nsCOMPtr<nsIDOMCanvasRenderingContext2D> canvas;
    canvas = do_QueryInterface(context, &rv);
    if (!(NS_SUCCEEDED(rv) && canvas))
    {
        return 0;
    }

// get canvas to draw
    PRUint32 flags = 0;
    nsString bg(L"rgb(0,0,0)");
    rv = canvas->DrawWindow(domWindow,xIn,yIn,widthIn,heightIn,bg,flags);
    if (!(NS_SUCCEEDED(rv)))
    {
        return 0;
    }
// recover bitmap ...

Thx.

_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to