Hello All,
                    Can anybody help me on this issue please?

On Thu, Dec 23, 2010 at 3:43 PM, ravi <ravi...@gmail.com> wrote:

> Thanks Chris. I've done that exercise. i implemented the function like
> this:
> {
>
>      surface->Lock(surface, DSLF_READ, &data, &pitch );
>
> return (pointer *)data + pitch*row;
>
> }
> I'm unlocking the surface in a different function that caller  will call
> after this function.
> running this function is aborting the program with this message......
>
>  DirectFBError [>surface->Lock( surface, (DFBSurfaceLockFlags)(DSLF_READ |
> DSLF_WRITE), &data, &pitch )]: Resource is locked!
>  Can you please help me to understand this phenomena?
>
> On Thu, Dec 23, 2010 at 3:32 PM, Chris Bore <chris_b...@yahoo.co.uk>wrote:
>
>> Well, if your requirement is at base to return a pointer to the pixel data
>> in the framebuffer, then Lock is the way to do it. You should then leave the
>> surface locked until you use that pointer and are done with it, when you can
>> safely unlock it. You could do that for example with standard reference
>> counting, or a simple flag.
>>
>> My point was, that the requirement you have been given (return a pointer
>> etc) may be more restrictive than it need be. Perhaps the real requirement,
>> for example, is that some function be able to read the pixel values from
>> some region, or to write those values so they can appear on the surface - in
>> which case there are other ways to do it. And the requirement you have, lets
>> you return only the pointer and pitch, but the user will then also need to
>> know things like the PixelFormat - and to assume things such as that the
>> pixel map is indeed a contiguous memory map, and the pixel format indeed
>> matches that returned (rather than both of these being abstractions, which
>> is formally what they are). For example some systems abstract the frame
>> buffer so that to DirectFB it appears as a contiguous memory map with the
>> DirectFB pixel formats, but in fact it is fragmented: when you use the API
>> it is fine but if you access via pointer it is not.
>>
>>
>> ==================================
>> Chris Bore
>> Training Director
>> BORES Signal Processing
>> ch...@bores.com
>> www.bores.com
>> +44 (0)1483 740138
>>
>>
>> ------------------------------
>> *From:* ravi <ravi...@gmail.com>
>> *To:* Chris Bore <chris_b...@yahoo.co.uk>
>> *Cc:* Sriram Neelakandan <sriram.neelakan...@gmail.com>;
>> directfb-users@directfb.org
>> *Sent:* Thu, 23 December, 2010 9:22:12
>>
>> *Subject:* Re: [directfb-users] accessing the row
>>
>>  i have a function to implement that  returns a pointer to an array of
>> pixels representing the
>> pixels in the specified row , or else returns NULL if an error occurred.
>> If successful, the returned
>> array pointer may point to a temporary buffer or directly into the frame
>> buffer.
>> (The latter is usually desirable, if possible.)
>>
>>
>> On Thu, Dec 23, 2010 at 2:42 PM, Chris Bore <chris_b...@yahoo.co.uk>wrote:
>>
>>> Although it is used in DirectFB, I do not recommend using the Lock/Unlock
>>> functions. They bypass the API, and raise other issues that can be
>>> problematic. I do not think there is ever a case where using Lock to gain
>>> direct access to the encapsulated pixel data is really necessary - it can
>>> always be done using the standard API. If you explain what you are trying to
>>> do then perhaps I can suggest another way to do it.
>>>
>>> ==================================
>>> Chris Bore
>>> Training Director
>>> BORES Signal Processing
>>> ch...@bores.com
>>> www.bores.com
>>> +44 (0)1483 740138
>>>
>>>
>>> ------------------------------
>>> *From:* ravi <ravi...@gmail.com>
>>> *To:* Sriram Neelakandan <sriram.neelakan...@gmail.com>
>>> *Cc:* directfb-users@directfb.org
>>> *Sent:* Thu, 23 December, 2010 4:58:32
>>> *Subject:* Re: [directfb-users] accessing the row
>>>
>>>
>>> If i unlock the surface first then how can i return the pointer to the
>>> caller? I'm unlocking the surface in a different function that caller  will
>>> call after this function.
>>> On Thu, Dec 23, 2010 at 10:02 AM, Sriram Neelakandan <
>>> sriram.neelakan...@gmail.com> wrote:
>>>
>>>> well that means the surface is already locked .. u must unlock each Lock
>>>> after usage
>>>>
>>>> 1. Lock
>>>> 2. use the pointer
>>>> 3. UnLock
>>>>
>>>>
>>>> On Wed, Dec 22, 2010 at 4:31 PM, ravi <ravi...@gmail.com> wrote:
>>>>
>>>>> Hell,
>>>>>            i have a function to implement that returns a pointer to an
>>>>> array of pixels representing the
>>>>> pixels in the specified row of the surface columns from x (inclusive)
>>>>> to x + w
>>>>> (exclusive), I implemented it like this......
>>>>>
>>>>> {  void      *data;
>>>>>      int        pitch;
>>>>>         surface->Lock(surface, DSLF_READ, &data, &pitch );
>>>>>
>>>>> return (pointer *)data + pitch*row;
>>>>>
>>>>> }
>>>>>
>>>>> running this function is aborting the program with this message......
>>>>>
>>>>>  DirectFBError [>surface->Lock( surface,
>>>>> (DFBSurfaceLockFlags)(DSLF_READ | DSLF_WRITE), &data, &pitch )]: Resource 
>>>>> is
>>>>> locked!
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Regards
>>>>>
>>>>> Ravi Swami
>>>>> EnMedia Software Technologies
>>>>> Ph +91-974-264-3747
>>>>>
>>>>> _______________________________________________
>>>>> directfb-users mailing list
>>>>> directfb-users@directfb.org
>>>>> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Sriram Neelakandan
>>>> Author - Embedded Linux System Design And Development (
>>>> http://tinyurl.com/2doosu)
>>>>
>>>
>>>
>>>
>>> --
>>> Regards
>>>
>>> Ravi Swami
>>> EnMedia Software Technologies
>>> Ph +91-974-264-3747
>>>
>>
>>
>>
>> --
>> Regards
>>
>> Ravi Swami
>> EnMedia Software Technologies
>> Ph +91-974-264-3747
>>
>
>
>
> --
> Regards
>
> Ravi Swami
> EnMedia Software Technologies
> Ph +91-974-264-3747
>



-- 
Regards

Ravi Swami
EnMedia Software Technologies
Ph +91-974-264-3747
_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to