Форум программистов, компьютерный форум CyberForum.ru

Непонятные дела с отрисовкой - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android LibGDX http://www.cyberforum.ru/android-dev/thread1276948.html
Добрый вечер ! Устанавливал я Gradle вот по этой инструкции : http://vygovskiy.com/xwiki/bin/view/Main/Eclipse+%D0%B8+Gradle И на пункте "На странице настроек Gradle указываем Gradle Distribution, Folder и выбираем папку установки Gradle " запнулся, так как незнаю какую папку выбирать, насколько я понял это...
Android Посоветуйте насчет фотографий Есть желание встроить в приложение возможность делать снимки, которые затем будут передаваться на внешний сервер. Подскажите, как лучше реализовать эту возможность? Делать снимок стандартными возможностями смартфона, а затем выбирать из галереи или есть какая-нибудь библиотека, которую можно подключить к проекту? http://www.cyberforum.ru/android-dev/thread1276922.html
Android Подвисает ViewPager с фрагментами внутри
Собственно вот в чём соль. Есть ViewPager с фрагментами внутри, в каждом фрагменте есть изображение которое подгружается из ресурсов (/drawable/img_1,/drawable/img_2 и т.д.) с помощью массива ссылок на ресурсы изображений. По сути с помощью программы можно листать картинки. Но вот проблемка, при перелистывании жутко фризит. Из-за чего это может быть? Если что изображения ~100kb. Весь код...
Android Прекомпил в яве вроде ifndef
Гуру! Помогите! Есть ли аналоги команды ifndef из с++? Пишу коллекцию классов вроде фреймворка и хочу предусмотреть режим с включенной и выключенной библиотекой android.support.v4.view.ViewPager. Хотелось бы не бояться кинуть мой класс в папку проекта без библиотеки... Раньше это приводило к ошибке "неизвестный класс android.support.v4.view.ViewPager"
Android Изменить из активити данные в фрагменте http://www.cyberforum.ru/android-dev/thread1276467.html
Есть Activity с PagerAdapter, в который грузятся фрагменты. В классе фрагмента данные берутся из БД и грузятся в ListView через адаптер (extends SimpleCursorAdapter). Как из метода в Activity изменить TextView в текущем фрагменте? Пробую с помощью FragmentManager fm = getSupportFragmentManager(), но застрял... Теги тоже присваиваю в адаптере через view.setTag, а в активити как их взять?
Android Калькулятор (не могу разобраться, как добавить вычисление sin и cos) Здрасьте! помогите разобраться не могу написать на этот калькулятор sin cos. Помогите написать калкулятор который вычисляет синус и косинус только одного любого числа Написал код, там калькулятор выполняет действия + - * / надо ещё добавить функцию синуса и косинуса Создадим проект: Project name: P0191_SimpleCalculator Build Target: Android 2.3.3 Application name: SimpleCalculator... подробнее

Показать сообщение отдельно
House15
 Аватар для House15
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 5

Непонятные дела с отрисовкой - Android

16.10.2014, 01:19. Просмотров 270. Ответов 0
Метки (Все метки)

Не могу понять что не так с отрисовкой банального треугольника. Нет его и всё. Брал рабочий код с друго проекта, оказался не таким уж и рабочим. Тут весь код на С++.

Проблема известна: надо отрисовать треугольник на Ведроиде. Используем NDK, поэтому код весь на С++.
Для полной осведомлённости прикреплю всё в виде архива.

Заранее спасибо за помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
main_func.cpp
/*
 * Copyright (C) 2009 The Android Open Source Project
 * See accompanying gl_code.cpp for license.
 */
 
#include "Ship.h"
 
static const char gVertexShader[] = 
    "attribute vec4 vPosition;\n"
    "void main() {\n"
    "  gl_Position = vPosition;\n"
    "}\n";
 
static const char gFragmentShader[] = 
    "precision mediump float;\n"
    "void main() {\n"
    "  gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);\n"
    "}\n";
GLuint gProgram;
GLuint gvPositionHandle;
 
bool setupGraphics(int w, int h) {
    printGLString("Version", GL_VERSION);
    printGLString("Vendor", GL_VENDOR);
    printGLString("Renderer", GL_RENDERER);
    printGLString("Extensions", GL_EXTENSIONS);
 
    LOGI("setupGraphics(%d, %d)", w, h);
    gProgram = createProgram(gVertexShader, gFragmentShader);
    if (!gProgram) {
        LOGE("Could not create program.");
        return false;
    }
    gvPositionHandle = glGetAttribLocation(gProgram, "vPosition");
    checkGlError("glGetAttribLocation");
    LOGI("glGetAttribLocation(\"vPosition\") = %d\n",
            gvPositionHandle);
 
    glViewport(0, 0, w, h);
    checkGlError("glViewport");
    return true;
}
 
const GLfloat gTriangleVertices[] = { 0.0f, 5.5f, -0.5f,
                  -5.5f, 5.5f, -0.5f,
                  5.5f, -5.5f, 0.0f};
 
void renderFrame() {
    static float grey;
    grey += 0.01f;
    if (grey > 1.0f) {
        grey = 0.0f;
    }
    glClearColor(grey, grey, grey, 1.0f);
    checkGlError("glClearColor");
    glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
    checkGlError("glClear");
 
    glUseProgram(gProgram);
    checkGlError("glUseProgram");
 
    glVertexAttribPointer(gvPositionHandle, 3, GL_FLOAT, GL_FALSE, 0, gTriangleVertices);
    checkGlError("glVertexAttribPointer");
    glEnableVertexAttribArray(gvPositionHandle);
    checkGlError("glEnableVertexAttribArray");
    glDrawArrays(GL_TRIANGLES, 0, 3);
    checkGlError("glDrawArrays");
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
*
 * Ship.cpp
 *
 *  Created on: 14 пїЅпїЅпїЅ. 2014 пїЅ.
 *      Author: пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
 */
 
 
#include "Ship.h"
 
// OpenGL ES 2.0 code
 
#include <jni.h>
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
void printGLString(const char *name, GLenum s) {
    const char *v = (const char *) glGetString(s);
    LOGI("GL %s = %s\n", name, v);
}
 
void checkGlError(const char* op) {
    for (GLint error = glGetError(); error; error
            = glGetError()) {
        LOGI("after %s() glError (0x%x)\n", op, error);
    }
}
 
 
GLuint loadShader(GLenum shaderType, const char* pSource) {
    GLuint shader = glCreateShader(shaderType);
    if (shader) {
        glShaderSource(shader, 1, &pSource, NULL);
        glCompileShader(shader);
        GLint compiled = 0;
        glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
        if (!compiled) {
            GLint infoLen = 0;
            glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
            if (infoLen) {
                char* buf = (char*) malloc(infoLen);
                if (buf) {
                    glGetShaderInfoLog(shader, infoLen, NULL, buf);
                    LOGE("Could not compile shader %d:\n%s\n",
                            shaderType, buf);
                    free(buf);
                }
                glDeleteShader(shader);
                shader = 0;
            }
        }
    }
    return shader;
}
 
GLuint createProgram(const char* pVertexSource, const char* pFragmentSource) {
    GLuint vertexShader = loadShader(GL_VERTEX_SHADER, pVertexSource);
    if (!vertexShader) {
        return 0;
    }
 
    GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pFragmentSource);
    if (!pixelShader) {
        return 0;
    }
 
    GLuint program = glCreateProgram();
    if (program) {
        glAttachShader(program, vertexShader);
        checkGlError("glAttachShader");
        glAttachShader(program, pixelShader);
        checkGlError("glAttachShader");
        glLinkProgram(program);
        GLint linkStatus = GL_FALSE;
        glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
        if (linkStatus != GL_TRUE) {
            GLint bufLength = 0;
            glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength);
            if (bufLength) {
                char* buf = (char*) malloc(bufLength);
                if (buf) {
                    glGetProgramInfoLog(program, bufLength, NULL, buf);
                    LOGE("Could not link program:\n%s\n", buf);
                    free(buf);
                }
            }
            glDeleteProgram(program);
            program = 0;
        }
    }
    return program;
}
 
 
extern "C" {
    JNIEXPORT void JNICALL Java_com_example_ark_ArkLib_init(JNIEnv * env, jobject obj,  jint width, jint height);
    JNIEXPORT void JNICALL Java_com_example_ark_ArkLib_step(JNIEnv * env, jobject obj);
};
 
JNIEXPORT void JNICALL Java_com_example_ark_ArkLib_init(JNIEnv * env, jobject obj,  jint width, jint height)
{
    setupGraphics(width, height);
}
 
JNIEXPORT void JNICALL Java_com_example_ark_ArkLib_step(JNIEnv * env, jobject obj)
{
    renderFrame();
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class GameVIew extends GLSurfaceView {
 
  public MyClassRenderer renderer; 
  
  public GameVIew(Context context) {
    super(context);
    System.out.println("ÑîçäГ*ЕѕГ¬ GameVIew");
    renderer = new MyClassRenderer(context);
    System.out.println("ÓñòГ*Г*Г*âëèâГ*ГҐГ¬ âåðèñèÿ Г*Г* 2");
        setRenderer(renderer);  
    setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
 
  }
    
      public int shotX;
      public int shotY; 
      
      private boolean running = false;
      
    
  
  public class MyClassRenderer implements GLSurfaceView.Renderer{
 
    public MyClassRenderer(Context context) {
      // TODO Auto-generated constructor stub
    }
 
    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
            gl.glEnable(GL10.GL_NORMALIZE);
 
            
            // Г¤Г*ëåå Г§Г*ãðóæГ*ГҐГ¬ òåêñòóðû .................. 
} 
 
    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) {
 
            
            ArkLib.init(width, height);
    }
 
    @Override
    public void onDrawFrame(GL10 gl) {
 
            ArkLib.step();
    }
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MainActivity extends Activity {
    private GameVIew mGLSurfaceView;
     @Override
    public void onCreate(Bundle savedInstanceState){
                super.onCreate(savedInstanceState);
                 mGLSurfaceView = new GameVIew(this);
    }
 
    @Override
    protected void onPause() {
                super.onPause();
                mGLSurfaceView.onPause();
    }
 
    @Override
    protected void onResume() {
                super.onResume();
                mGLSurfaceView.onResume();
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru