OpenGL үшін Java байланыстары - Java Bindings for OpenGL

OpenGL API үшін Java байланыстыру Бұл JSR API үшін сипаттама (JSR 231) Java платформасы, Standard Edition пайдалануға мүмкіндік береді OpenGL үстінде Java (бағдарламалық платформа).[1] Сондай-ақ бар OpenGL ES API үшін Java байланыстыру (JSR 239) үшін Java платформасы, Micro Edition.

Бағдарламалау тұжырымдамалары

Core OpenGL API және ГЛУ кітапхана қоңырауларын мына жерден алуға болады Java түпнұсқа OpenGL-ге ұқсас жұқа орауыш арқылы C API, GLU қоспағанда NURBS жалпыға ортақ API арқылы көрсетілмейтін күнделікті әрекеттер.

Барлық платформаларға арналған кітапханалар (қол жетімді CGL Арналған API Mac OS X, GLX үшін X терезе жүйесі, және WGL үшін Microsoft Windows ) платформаны таңдаудың тәуелсіз әдісін құру үшін шығарылған Фреймбуфер атрибуттар және платформаға арналған Framebuffer операцияларын орындау.

Платформаға арналған кеңейтімдер жалпыға ортақ API-де қамтылмаған. Әрбір бағдарлама осы API интерфейстерінің кейбірін. Арқылы экспорттауды таңдай алады GL.getPlatformGLExtensions () және GL.getExtension (жол) деректер типтері берілген іске асыруға тән объектілерді қайтаратын әдіс шақырулар.

Мысал

Бұл мысалда көпбұрышты қалай салу керектігі көрсетілген (инициализациясыз немесе кодты қайта бояусыз).[2] Міне сілтеме C іске асыру:

 int DrawGLScene(GLvoid) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glTranslatef(-1.5f, 0.0f, -6.0f); // 1,5 бірлікті солға жылжытыңыз
    glBegin(GL_TRIANGLES); // Үшбұрыштарды пайдаланып сурет салу
    glVertex3f( 0.0f, 1.0f, 0.0f); // Жоғары
    glVertex3f(-1.0f,-1.0f, 0.0f); // Төменгі сол
    glVertex3f( 1.0f,-1.0f, 0.0f); // Төменгі оң жақ
    glEnd();	
    glTranslatef(3.0f, 0.0f, 0.0f);
    glBegin(GL_QUADS); // Төртбұрышты салыңыз
    glVertex3f(-1.0f, 1.0f, 0.0f); // Жоғарғы сол жақ
    glVertex3f( 1.0f, 1.0f, 0.0f); // Жоғары оң жақ
    glVertex3f( 1.0f,-1.0f, 0.0f); // Төменгі оң жақ
    glVertex3f(-1.0f,-1.0f, 0.0f); // Төменгі сол
    glEnd();
    glFlush();
    қайту ШЫН;
 }

Бұл келесіге аударылады Java іске асыру:

 қоғамдық жарамсыз дисплей(GLAutoDrawable glDrawable) {
   ақтық GL gl = glDrawable.getGL();
   gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
   gl.glLoadIdentity();
   gl.glTranslatef(-1.5f, 0.0f, -6.0f); // 1,5 бірлікті солға жылжытыңыз
   gl.glBegin(GL.GL_TRIANGLES); // Үшбұрыштарды пайдаланып сурет салу
   gl.glVertex3f( 0.0f, 1.0f, 0.0f); // Жоғары
   gl.glVertex3f(-1.0f,-1.0f, 0.0f); // Төменгі сол
   gl.glVertex3f( 1.0f,-1.0f, 0.0f); // Төменгі оң жақ
   gl.glEnd();
   gl.glTranslatef(3.0f, 0.0f, 0.0f);
   gl.glBegin(GL.GL_QUADS); // Төртбұрыш салыңыз
   gl.glVertex3f(-1.0f, 1.0f, 0.0f); // Жоғарғы сол жақ
   gl.glVertex3f( 1.0f, 1.0f, 0.0f); // Жоғары оң жақ
   gl.glVertex3f( 1.0f,-1.0f, 0.0f); // Төменгі оң жақ
   gl.glVertex3f(-1.0f,-1.0f, 0.0f); // Төменгі сол
   gl.glEnd();
   gl.glFlush();
 }

Іске асыру

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «JSR 231: OpenGL API үшін JavaBinding». Java қауымдастық процесі. Алынған 2011-02-06.
  2. ^ Бастап қарызға алынды Нехе оқулығы, оның коды басқа жерде пайдалануға ақысыз.
  3. ^ «OpenGL API үшін JSR-000231 Java байланыстары». Java қауымдастық процесі. Алынған 2011-02-06. OpenGL API үшін Java Binding үшін қоғамдастықтың максималды қатысуын жеңілдету үшін біз java.net сайтындағы JOGL жобасын қолданамыз. https://jogl.dev.java.net. JOGL бастапқы кодын либералды бастапқы код лицензиясымен лицензияланған жерден табуға болады (көбіне BSD лицензиясы бар, басқа тараптардың лицензиялық кодтарын қолданатын жағдайларды қоспағанда). Біз бірнеше ай сайын осы жобадан кодтың суретін түсіріп, бастапқы кодта Технологиялық үйлесімділік жиынтығын іске қосамыз, содан кейін оны ресми түрде OpenGL API шығарылымы үшін әрбір ресми Java байланыстыру үшін сілтеме жүзеге асырамыз.

Сыртқы сілтемелер