Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c++/opengl] вывод времени 
:(
    Опции темы
SAVEL
  Дата 2.11.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 31.1.2007

Репутация: -1
Всего: -1



Друзья подскажите как в OpenGL на С++ вывести текущее время или счетчик времени с момента запуска?
 smile 
--------------------
В любых делах при максимуме сложности подход к проблеме всё-таки один! Желание - это множество возможностей, а нежелание - это множество причин !!!
PM MAIL   Вверх
Rickert
Дата 5.11.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Какую конкретно проблему вы повстречали?
Не можете вывести текст?
Не можете получить время?
Или просто лень самому делать?

Это сообщение отредактировал(а) Rickert - 5.11.2010, 16:06


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
SAVEL
  Дата 10.11.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 31.1.2007

Репутация: -1
Всего: -1



Нет совсем не лень, точнее не могу получить время. Точнее вывести его...
Вот как я вывожу текст: 
Код


UINT g_FontListID = 0;

HFONT hOldFont;

#define MAX_CHARS    256                                    

#define FONT_HEIGHT    24

UINT CreateOpenGLFont(LPSTR strFontName, int height)    
{
    UINT    fontListID = 0;                                
    HFONT    hFont;                                        

    fontListID = glGenLists(MAX_CHARS);                    

    hFont = CreateFont(    height,                            
                        0,                                
                        0,                                
                        0,                                
                        FW_BOLD,                        
                        FALSE,                            
                        FALSE,                            
                        FALSE,                            
                        ANSI_CHARSET,                    
                        OUT_TT_PRECIS,                
                        CLIP_DEFAULT_PRECIS,            
                        ANTIALIASED_QUALITY,            
                        FF_DONTCARE|DEFAULT_PITCH,    
                        strFontName);                    

    hOldFont = (HFONT)SelectObject(g_hDC, hFont);

    wglUseFontBitmaps(g_hDC, 0, MAX_CHARS - 1, fontListID);    

    return fontListID;                                    
}

void Init(HWND hWnd)
{
...
    g_FontListID = CreateOpenGLFont("Pericles", FONT_HEIGHT);
...
    glClearColor(0,0,0,1);

    glEnable(GL_LIGHT0);                                
    glEnable(GL_LIGHTING);                                
    glEnable(GL_COLOR_MATERIAL);                        
}

void PositionText( int x, int y )
{

    glPushAttrib( GL_TRANSFORM_BIT | GL_VIEWPORT_BIT );

    glMatrixMode( GL_PROJECTION );                        
    glPushMatrix();                                        
    glLoadIdentity();                                    
    glMatrixMode( GL_MODELVIEW );                        
    glPushMatrix();                                        
    glLoadIdentity();                                    

    y = SCREEN_HEIGHT - FONT_HEIGHT - y;                

    glViewport( x - 1, y - 1, 0, 0 );                    

    glRasterPos4f( 0, 0, 0, 1 );                        

    glPopMatrix();                                        
    glMatrixMode( GL_PROJECTION );                        
    glPopMatrix();                                        

    glPopAttrib();                                        
}

void glDrawText(int x, int y, const char *strString, ...)
{
    char        strText[256];                            
    va_list        argumentPtr;                        

    if (strString == NULL)                                
        return;                                        

    va_start(argumentPtr, strString);                    

    vsprintf(strText, strString, argumentPtr);            

    va_end(argumentPtr);                                

    PositionText(x, y);                                    

    glPushAttrib(GL_LIST_BIT);                            

    glListBase(g_FontListID);                            

    glCallLists(strlen(strText), GL_UNSIGNED_BYTE, strText);

    glPopAttrib();                                        
}

void RenderScene() 
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    
    glLoadIdentity();                                    

    gluLookAt(0, 100, 175,        0, 25, 0,            0, 1, 0);

    glColor3f(0, 0.9, 0.5);                                    

    glDrawText(10, 0, "Хочу отобразить время тут", strFrameRate );

    SwapBuffers(g_hDC);                                    
}


Вот счетчик времени, минут, секунд(консоль):

Код


#include <iostream>
#include <iomanip>
#include <time.h>

using namespace std;

void wait(int seconds)
{
  clock_t endwait;
  endwait = clock () + seconds * CLOCKS_PER_SEC ;
  while ((clock() < endwait)) {}
}


void printStopWatch(int seconds = 0)
{
    setlocale(LC_ALL, ".1251");
    cout << "СЕКУНДОМЕР" << endl;
    cout << seconds/60 <<":"<<((seconds < 60) ? seconds : seconds%60) <<endl;
}

int main()
{
    int n = 0;
    bool status = true;

while(status != false)
{
    system("cls");
        printStopWatch(n);
        wait (1);
        n++;
}
    return 0;
}


Помогите собрать 2 куска воедино!

Это сообщение отредактировал(а) SAVEL - 13.11.2010, 15:49
--------------------
В любых делах при максимуме сложности подход к проблеме всё-таки один! Желание - это множество возможностей, а нежелание - это множество причин !!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0739 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.