Re: trying to do a blinking text cursor
Jack Andrews <[email protected]>
| Newsgroups | gmane.comp.lib.sdl |
|---|---|
| Message-ID | <CAJvHTNws7yd==PT2OGnRZ+h31_W_TzV6aE-CppSs=VMCrHFihw@mail.gmail.com> |
Hey Johnny D > SDL_gpu I'll use SDL_gpu - it must be portable if as it has Android.mk . But I was under the impression that SDL did gpu operations... I'm new.. Please share your solution (or we can discuss it in SDL_gpu forum if it's off topic for the list) Thanks Jack. On 7 August 2016 at 01:43, Jonathan Dearborn <[email protected]> wrote: > To invert existing colors on a render target, you have to read the pixels > first so you can calculate the inverted colors. This is a very slow > operation and should not be done lightly. > > The best way to do it nowadays (i.e. without direct video memory access) > is to use a shader and keep the color calculations on the GPU. I can't > help any further than that with plain SDL (is anyone using shaders with > SDL_Renderer?), but I can do it all in a couple minutes with SDL_gpu. > > Jonny D > > > > On Sat, Aug 6, 2016 at 11:20 AM, Jack Andrews <[email protected]> wrote: > >> Hi, >> >> I'm using SDL2 as it looks like the most cross-platform UI library out >> there. I don't want a GUI toolkit. >> >> I'm writing a very simple text editor and so far, the most challenging >> thing has been showing a blinking cursor at the text insertion point. >> >> I think I can work how an SDL timer works, but I can't work out how to >> invert the colours of a SDL_Rect at the insertion point. How would I >> implement a function: >> >> int ColourInvert(SDL_Window*w, SDL_Renderer*rend, SDL_Rect area); >> >> ? >> >> here's my pseudo-code for my editor (had to trim all the editor stuff >> out): >> >> SDL_Renderer*re;SDL_Window*w;TTF_Font*font; >> int drawline(char*s){ >> SDL_Surface*su=SDL_RenderText_Shaded(font,s,a,b)); >> SDL_Texture*tx=SDL_CreateTextureFromSurface,(re,su)); >> SDL_RenderCopy(re,tx,0,&rect)); >> SDL_DestroyTexture(tx); >> SDL_FreeSurface(su); >> } >> main(){ >> SDL_Init(SDL_INIT_EVERYTHING);TTF_Init(); >> w=SDL_CreateWindow(x,a,a,y,z,SDL_WINDOW_SHOWN); >> re=SDL_CreateRenderer(w,-1,SDL_RENDERER_ACCELERATED); >> SDL_SetRenderDrawColor(g.v,255,255,255,255); >> SDL_RenderClear(g.v); >> SDL_RenderPresent(g.v); >> //message loop >> //a keypress changes a line >> // for each line in lines{drawline(line)} >> } >> >> Thanks for all your work, guys, >> >> >> Jack >> >> _______________________________________________ >> SDL mailing list >> [email protected] >> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org >> >> > > _______________________________________________ > SDL mailing list > [email protected] > http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org > > _______________________________________________ SDL mailing list [email protected] http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org