VPN termux about China.net

c4droid exemple opengl sdl


#include "SDL.h"
#include <SDL.h>

#include <EGL/egl.h>
#include<vector>
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include "SDL/SDL_ttf.h"
#include <string>
#include <sstream>
#include <GLES/gl.h>
#include<string>
#include "SDL/SDL_image.h"
#include <SDL2/SDL.h>
struct kulka

{   

  int a;
  int b;
           
} ball={0, 0} , wall= {1 , 1} , speed= {3, 4}, quad;

    SDL_Window *win = NULL;

    SDL_Renderer *renderer = NULL;

    SDL_Texture *bitmapTex = NULL;

        SDL_Surface *surface;
SDL_Surface * kursor = NULL;
SDL_Surface * przycisk = NULL;
SDL_Rect przyciskDane;
SDL_Rect przyciskCel;

SDL_Rect startButonW;
SDL_Rect startButonH;

        SDL_Rect rect, darea;
SDL_Rect kursorDane;
    SDL_Surface *bitmapSurface = NULL;
    SDL_Event event;

 //int a=100, b=100;  
/*                     -----------
                               |
                               |
*/

void triangle (SDL_Renderer *renderer)
{
     int a;
   
      przyciskDane.w = 150;
    przyciskDane.h = 50;
    przyciskCel.x = 0;
    przyciskCel.y = 0;
                SDL_SetRenderDrawColor(renderer, 255, 255, 0, SDL_ALPHA_OPAQUE);
                /*      E     */
                SDL_RenderDrawLine(renderer, 0, 0, 50, 0);
                  SDL_RenderDrawLine(renderer, 0, 25, 25, 25);
                         SDL_RenderDrawLine(renderer, 0, 50, 50, 50);
                           SDL_RenderDrawLine(renderer, 0, 0, 0, 50);
                           /*      X   */
                               SDL_RenderDrawLine(renderer, 50, 0, 100, 50);
                           SDL_RenderDrawLine(renderer, 100, 0, 50, 50);
                           /*   I       */
                SDL_RenderDrawLine(renderer, 100, 0, 100, 50);
                /*         T         */
                SDL_RenderDrawLine(renderer, 100, 0, 150, 0);
                    SDL_RenderDrawLine(renderer, 125, 0, 125, 50);
      
   
    }
    void start (SDL_Renderer *renderer)
{
     int a;
       startButonW.w = 225;
     startButonW.h = 150;
    startButonH.x = 0;
    startButonH.y = 100;
                SDL_SetRenderDrawColor(renderer, 255, 255, 0, SDL_ALPHA_OPAQUE);
                /*      S     */
                SDL_RenderDrawLine(renderer, 0, 100, 50, 100);
                        SDL_RenderDrawLine(renderer, 0, 100, 0, 125);
                  SDL_RenderDrawLine(renderer, 0, 125, 50, 125);
                         SDL_RenderDrawLine(renderer, 0, 150, 50, 150);
                           SDL_RenderDrawLine(renderer, 50, 125, 50, 150);
                                /*         T         */
                SDL_RenderDrawLine(renderer, 50, 100, 100, 100);
                    SDL_RenderDrawLine(renderer, 75, 100, 75, 150);
                           /*      A   */
                               SDL_RenderDrawLine(renderer, 100, 150, 125, 100);
                           SDL_RenderDrawLine(renderer, 125, 100, 150, 150);
                           /*   R     */
                 SDL_RenderDrawLine(renderer, 150, 150, 150, 100);
                        SDL_RenderDrawLine(renderer, 150, 100, 175, 100);
                  SDL_RenderDrawLine(renderer, 175, 100, 175, 125);
                         SDL_RenderDrawLine(renderer, 175, 125, 150, 125);
                           SDL_RenderDrawLine(renderer, 150, 125, 175, 150);
                /*         T         */
                SDL_RenderDrawLine(renderer, 175, 100, 225, 100);
                    SDL_RenderDrawLine(renderer, 200, 100, 200, 150);
      
   
    }
void line (SDL_Renderer *renderer)
{
/*draw kursor mouse */
  
                SDL_SetRenderDrawColor(renderer, 255, 255, 0, SDL_ALPHA_OPAQUE);
                SDL_RenderDrawLine(renderer,    kursorDane.x,    kursorDane.y ,    kursorDane.x +100,    kursorDane.y +100);
              
    
   
    }

void point (SDL_Renderer *renderer)
{

   //  kursorDane.y ;
                SDL_SetRenderDrawColor(renderer, 255, 255, 0, SDL_ALPHA_OPAQUE);
                SDL_RenderDrawLine(renderer,    ball.a,    ball.b, ball.a+50, ball.b+50);
                 SDL_RenderDrawLine(renderer,    ball.a+50,    ball.b, ball.a+50, ball.b+50);
                 //     SDL_RenderDrawLine(renderer,    a,    b, a+50, b+50);
               SDL_RenderDrawLine(renderer,    ball.a+50,  ball.b , ball.a, ball.b);
     ball.a+=speed.a;


ball.b+=speed.b;
if (ball.a>600) {--speed.a;}
if (ball.b>600) {--speed.b;}
if(ball.b<0) {++speed.b;}
if(ball.a<0) {++speed.a;}

}
void

DrawChessBoard(SDL_Renderer * renderer)

{
   

    int row = 0,column = 0,x = 0;

    SDL_Rect rect, darea;


    /* Get the Size of drawing surface */

    SDL_RenderGetViewport(renderer, &darea);


    for ( ; row < 8; row++) {

        column = row%2;

        x = column;

        for ( ; column < 4+(row%2); column++) {

            SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);


            rect.w = darea.w/8;

            rect.h = darea.h/8;

            rect.x = x * rect.w;

            rect.y = row * rect.h;

            x = x + 2;

            SDL_RenderFillRect(renderer, &rect);

        }

    }

}



int main(int argc, char *argv[]) {

      SDL_Init( SDL_INIT_EVERYTHING );
    int posX = 100, posY = 100, width = 320, height = 240;

           SDL_RenderFillRect(renderer, &rect);

  //  SDL_Init(SDL_INIT_VIDEO);


    win = SDL_CreateWindow("Hello World", posX, posY, width, height, SDL_WINDOW_OPENGL);

    surface = SDL_GetWindowSurface(win);

    renderer = SDL_CreateSoftwareRenderer(surface);

 

    SDL_RenderGetViewport(renderer, &darea);

             SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);
 //bitmapSurface = load_image( "background.png" );
 bitmapSurface = SDL_LoadBMP("moon-220.bmp");

    bitmapTex = SDL_CreateTextureFromSurface(renderer, bitmapSurface);

    SDL_FreeSurface(bitmapSurface);
   // SDL_WM_SetCaption( "Zdarzenia", NULL );
  //  SDL_Flip( ekran );

    while (1) {
   SDL_ShowCursor( SDL_DISABLE );
        SDL_Event e;
            if( e.type == SDL_KEYDOWN )
    {
        //Set the velocity
        switch( e.key.keysym.sym )
        {
        //    case SDLK_RIGHT: a+=1; break;
       //     case SDLK_LEFT: a-=1; break;
        }
    }
   
        if( e.type == SDL_MOUSEMOTION )
            {
                kursorDane.x = e.motion.x;
                kursorDane.y = e.motion.y;
                if(kursorDane.x>ball.a&&kursorDane.y>ball.b&&kursorDane.x<ball.a+50&&kursorDane.y<ball.b+50)
                {
                    --speed.a;
               //     a=kursorDane.x;
              //      b=kursorDane.y;
                    }
               
            }
    //If a key was released
    else if( e.type == SDL_KEYUP )
    {
        //Set the velocity
        switch( e.key.keysym.sym )
        {
        //    case SDLK_RIGHT: a+=10; break;
      //      case SDLK_LEFT: a-=10; break;
        }
    }
    if( e.type == SDL_MOUSEBUTTONDOWN )
            {
                if( e.button.button == SDL_BUTTON_LEFT &&
                ( kursorDane.x >= przyciskCel.x && kursorDane.x <=
                przyciskCel.x + przyciskDane.w ) &&( kursorDane.y >=
                przyciskCel.y && kursorDane.y <= przyciskCel.y +
                przyciskDane.h ) )
                {
                    e.type==SDL_QUIT;
                   break;
                }
                      if( e.button.button == SDL_BUTTON_LEFT &&
                ( kursorDane.x >= startButonH.x && kursorDane.x <=
                startButonH.x + startButonW.w ) &&( kursorDane.y >=
                startButonH.y && kursorDane.y <= startButonH.y +
                startButonW.h ) )
                {
                        glClear(GL_COLOR_BUFFER_BIT);
                       
                     //triangle (renderer)    ;
                   
                   
                   
           line(renderer);
                 point(renderer);
                glFlush();
                    SDL_GL_SwapWindow(win);
        
            }
            }
        if (SDL_PollEvent(&e)) {

            if (e.type == SDL_QUIT) {

                break;

            }
           
   

        }

         //   DrawChessBoard(renderer);
start (renderer);
     triangle (renderer)    ;                  
             line(renderer);
                point(renderer);
               
              
    /* Got everything on rendering surface,

       now Update the drawing image on window screen */

    SDL_UpdateWindowSurface(win);

           SDL_RenderFillRect(renderer, &rect);       

        SDL_RenderClear(renderer);

        SDL_RenderCopy(renderer, bitmapTex, NULL, NULL);

 //       SDL_RenderPresent(renderer);

                glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
// turn on animate

   //     glClear(GL_COLOR_BUFFER_BIT);







    SDL_GL_SwapWindow(win);

    }
   

    SDL_DestroyTexture(bitmapTex);

    SDL_DestroyRenderer(renderer);

    SDL_DestroyWindow(win);


    SDL_Quit();

   
    return 0;

}

No comments:

Post a Comment