> dmitry wrote:
>
> >
> > It seems to me that it is possible to render the Fl_Double_Window or 
> > Fl_Window to memory as a bitmap. But how?
> >
> > I am interested in using this option to create gl textures from such 
> > bitmaps. Is it Possible? And how?
> >
> >
>
>
>
>
> // image size, in the power of two to have it compatible
> // with opengl texture sizes
> int w = 256;
> int h = 256;
>
>
> unsigned char * image_data = new unsigned char[w*h*3];
>
> // creating screen-compatible, platform dependent offscreen drawable
> Fl_Offscreen o = fl_creare_ofscreen(w, h);
>
> // making it current
> fl_begin_offscreen(o);
>
> // place your fltk drawings here
> ....
> ....
> ....
>
> // reading the data from the drawable to the RGB memory
> fl_read_image(image_data, 0, 0, w, h);
>
> // setting back previous drawable as current
> fl_end_offscreen();
>
> // deleting offscreen
> fl_delete_offscreen(o);
>
>
>
>
> OpenGL code:
>
>
>
> // create your texture and load data to it, ie:
>
> GLuint texture_id;
> glGenTextures(1, &texture_id);
>
> if(!texture_id) // something wrong...
>    handle_error();
>
> // make the texture current
> glBindTexture(GL_TEXTURE_2D, texture_id);
>
> // set your other texture property here, like
> // GL_TEXTURE_MIN_FILTER,
> // GL_TEXTURE_MAG_FILTER,
> // GL_TEXTURE_WRAP_S,
> // GL_TEXTURE_WRAP_T
>
> // loading data eg using glu and building mipmaps for nice scaling
> gluBuild2DMipmaps(GL_TEXTURE_2D, 3, w,  h, GL_RGB, GL_UNSIGNED_BYTE,
> image_data);
>
>
> // delete image data not needed any more
> delete[] image_data;
>
> Your texture is now loaded with the identifier
> texture_id
> Look for fl_create_offscreen(), fl_begin_offscreen(), fl_end_offscreen()
> and fl_read_image() functions in the documentation.
>
>
> R.

thanks a lot.
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to