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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dmScript
Сообщений: n/a
#1

С одной cpp в другую - C++

09.07.2012, 18:36. Просмотров 360. Ответов 1
Метки нет (Все метки)

Господа, вот ниже два куска кода, как сделать так чтобы результат ARB_multitexture_supported приходил во вторую cppшку? В общем как ее туда правильно перекинуть?
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
bool SetUpARB_multitexture()
{
    bool ARB_multitexture_supported=false;
    //Check for support
    char * extensionString=(char *)glGetString(GL_EXTENSIONS);
    char * extensionName="GL_ARB_multitexture";
 
    char * endOfString;                                 //store pointer to end of string
    unsigned int distanceToSpace;                       //distance to next space
 
    endOfString=extensionString+strlen(extensionString);
 
    //loop through string
    while(extensionString<endOfString)
    {
        //find distance to next space
        distanceToSpace=strcspn(extensionString, " ");
 
        //see if we have found extensionName
        if((strlen(extensionName)==distanceToSpace) &&
            (strncmp(extensionName, extensionString, distanceToSpace)==0))
        {
            ARB_multitexture_supported=true;
        }
 
        //if not, move on
        extensionString+=distanceToSpace+1;
    }
    
    if(!ARB_multitexture_supported)
    {
        //printf("ARB_multitexture unsupported!\n");
        return false;
    }
 
    //printf("ARB_multitexture supported!\n");
 
    //get function pointers
    glActiveTextureARB          =   (PFNGLACTIVETEXTUREARBPROC)
                                    wglGetProcAddress("glActiveTextureARB");
    glClientActiveTextureARB    =   (PFNGLCLIENTACTIVETEXTUREARBPROC)
                                    wglGetProcAddress("glClientActiveTextureARB");
    glMultiTexCoord1dARB        =   (PFNGLMULTITEXCOORD1DARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1dARB");
    glMultiTexCoord1dvARB       =   (PFNGLMULTITEXCOORD1DVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1dvARB");
    glMultiTexCoord1fARB        =   (PFNGLMULTITEXCOORD1FARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1fARB");
    glMultiTexCoord1fvARB       =   (PFNGLMULTITEXCOORD1FVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1fvARB");
    glMultiTexCoord1iARB        =   (PFNGLMULTITEXCOORD1IARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1iARB");
    glMultiTexCoord1ivARB       =   (PFNGLMULTITEXCOORD1IVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1ivARB");
    glMultiTexCoord1sARB        =   (PFNGLMULTITEXCOORD1SARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1sARB");
    glMultiTexCoord1svARB       =   (PFNGLMULTITEXCOORD1SVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord1svARB");
    glMultiTexCoord2dARB        =   (PFNGLMULTITEXCOORD2DARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2dARB");
    glMultiTexCoord2dvARB       =   (PFNGLMULTITEXCOORD2DVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2dvARB");
    glMultiTexCoord2fARB        =   (PFNGLMULTITEXCOORD2FARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2fARB");
    glMultiTexCoord2fvARB       =   (PFNGLMULTITEXCOORD2FVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2fvARB");
    glMultiTexCoord2iARB        =   (PFNGLMULTITEXCOORD2IARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2iARB");
    glMultiTexCoord2ivARB       =   (PFNGLMULTITEXCOORD2IVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2ivARB");
    glMultiTexCoord2sARB        =   (PFNGLMULTITEXCOORD2SARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2sARB");
    glMultiTexCoord2svARB       =   (PFNGLMULTITEXCOORD2SVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord2svARB");
    glMultiTexCoord3dARB        =   (PFNGLMULTITEXCOORD3DARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3dARB");
    glMultiTexCoord3dvARB       =   (PFNGLMULTITEXCOORD3DVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3dvARB");
    glMultiTexCoord3fARB        =   (PFNGLMULTITEXCOORD3FARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3fARB");
    glMultiTexCoord3fvARB       =   (PFNGLMULTITEXCOORD3FVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3fvARB");
    glMultiTexCoord3iARB        =   (PFNGLMULTITEXCOORD3IARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3iARB");
    glMultiTexCoord3ivARB       =   (PFNGLMULTITEXCOORD3IVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3ivARB");
    glMultiTexCoord3sARB        =   (PFNGLMULTITEXCOORD3SARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3sARB");
    glMultiTexCoord3svARB       =   (PFNGLMULTITEXCOORD3SVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord3svARB");
    glMultiTexCoord4dARB        =   (PFNGLMULTITEXCOORD4DARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4dARB");
    glMultiTexCoord4dvARB       =   (PFNGLMULTITEXCOORD4DVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4dvARB");
    glMultiTexCoord4fARB        =   (PFNGLMULTITEXCOORD4FARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4fARB");
    glMultiTexCoord4fvARB       =   (PFNGLMULTITEXCOORD4FVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4fvARB");
    glMultiTexCoord4iARB        =   (PFNGLMULTITEXCOORD4IARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4iARB");
    glMultiTexCoord4ivARB       =   (PFNGLMULTITEXCOORD4IVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4ivARB");
    glMultiTexCoord4sARB        =   (PFNGLMULTITEXCOORD4SARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4sARB");
    glMultiTexCoord4svARB       =   (PFNGLMULTITEXCOORD4SVARBPROC)
                                    wglGetProcAddress("glMultiTexCoord4svARB");
 
    return true;
}
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
112
113
114
115
116
117
118
119
120
#include "KSA_MultiTexture.h"
 
KSA_MultiTexture::KSA_MultiTexture(GLuint ID1, GLuint ID2, float scale) : texture1(ID1), texture2(ID2), scale(scale)
{
 
}
 
KSA_MultiTexture::~KSA_MultiTexture()
{
    Unload();
}
 
bool KSA_MultiTexture::GLBind()
{
    if (ARB_multitexture_supported)
    {
        glColor3f(255.0f,255.0f,255.0f);
        glEnable(GL_TEXTURE_2D);
 
        glActiveTextureARB(GL_TEXTURE0_ARB);
        glEnable(GL_TEXTURE_2D);
        glBindTexture(GL_TEXTURE_2D, texture1);
 
        glActiveTextureARB(GL_TEXTURE1_ARB);
        glEnable(GL_TEXTURE_2D);
        
        glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
        glTexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE_ARB, 2);
        
        glBindTexture(GL_TEXTURE_2D, texture2);
    
        glMatrixMode(GL_TEXTURE);
 
            glLoadIdentity();
            glScalef(scale, scale, 1);
 
        glMatrixMode(GL_MODELVIEW);
    return 1;
    }
    else
    {
        glColor3f(255.0f,255.0f,255.0f);
        glActiveTextureARB ( GL_TEXTURE0_ARB );
        glEnable           ( GL_TEXTURE_2D );
        glEnable    ( GL_ALPHA_TEST );
        glAlphaFunc ( GL_GEQUAL, 0.5 );
 
        glMatrixMode(GL_TEXTURE);
        
            glLoadIdentity();
            glScalef(scale, scale, 1);
 
        glMatrixMode(GL_MODELVIEW);
        
        glBindTexture(GL_TEXTURE_2D, texture1 );
    return 1;
    }
}
 
void KSA_MultiTexture::GLCoord(float u, float v)
{
    if (ARB_multitexture_supported)
    {
        glMultiTexCoord2fARB(GL_TEXTURE0_ARB, u, v);
        glMultiTexCoord2fARB(GL_TEXTURE1_ARB, u, v);
    }
    else
    {
        glMultiTexCoord2fARB(GL_TEXTURE0_ARB, u, v);
    }
}
 
void KSA_MultiTexture::Unload()
{
    if (ARB_multitexture_supported)
        {
        glDeleteTextures (1, &texture1);
        glDeleteTextures (1, &texture2);
    }
    else
    {
        glDeleteTextures (1, &texture1);
    }
}
 
bool KSA_MultiTexture::IsCorrect()
{
    return glIsTexture(texture1)&&glIsTexture(texture2);
}
 
GLuint KSA_MultiTexture::GetID()
{
    return texture1;
}
 
void KSA_MultiTexture::Release()
{
 
    if (ARB_multitexture_supported)
    {
        glActiveTextureARB(GL_TEXTURE1_ARB);
        glDisable(GL_TEXTURE_2D);
 
        glActiveTextureARB(GL_TEXTURE0_ARB);        
        glDisable(GL_TEXTURE_2D);
 
        glEnable(GL_TEXTURE_2D);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    }
    else
    {
        glActiveTextureARB(GL_TEXTURE1_ARB);
        glDisable(GL_TEXTURE_2D);
 
        glEnable(GL_TEXTURE_2D);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    }
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2012, 18:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С одной cpp в другую (C++):

можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать? - C++
можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это...

С помощью командной строки >namberstr f1.cpp Определить число строк в файле с именем f1.cpp - C++
С помощью командной строки &gt;namberstr f1.cpp Определить число строк в файле с именем f1.cpp

Перевод из одной С.С. в другую - C++
Как можно организовать при помощи ОДНОЙ функции, в которую вводится само число и система счисления?

Перевод из одной сс в другую - C++
Помогите разработать программу, осуществляющую перевод произвольного целого неотрицательного числа из одной системы счисления в...

Копирование одной строки в другую - C++
Для этого есть функция strcpy - стандартная функция из библиотеки. Надо написать программу, не используя ф-ию strcpy. Допустим есть ...

Из одной матрицы сформировать другую - C++
Работа с массивами

1
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
09.07.2012, 19:04 #2
Цитата Сообщение от dmScript Посмотреть сообщение
результат ARB_multitexture_supported приходил во вторую cppшку
сделать ARB_multitexture_supported глобальной
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 19:04
Привет! Вот еще темы с ответами:

Сообщить одной функции другую - C++
Экспериментирую с функциями, вот решил написать две функции. одна для расчета другая для вывода. Вопрос гду ошибка. Или так просто нельзя...

Перевод чисел из одной сс в другую - C++
Здравствуйте, помогите пожалуйста перевести код функции переводящий число из десятичной сс в шестнадцатиричную написанной на паскале в...

Замена одной подстроки на другую - C++
Есть ли функция, которая может заменить все вхождения подстроки strl на подстроку strl2? Если нет, то как это возможно осуществить? ...

Умножение одной матрицы на другую - C++
нужно умножить одну матрицу на другую. Подойдет ли такой алгоритм? for (i = 0; i&lt;m; i++) for (j = 0; j&lt;m; j++) { s = 0; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru