Hier kommt die test tabelle
| Name | Planet | gefahr | gggg | hhhh |
|---|---|---|---|---|
| Alf | Melmak | Hoch | a | d |
| Bernd | Melmak | Niedrig | c | d |
| Klaus | Erde | Niedrig | c | c |
| f | f | f | f | f |
Hier kommt die test tabelle
| Name | Planet | gefahr | gggg | hhhh |
|---|---|---|---|---|
| Alf | Melmak | Hoch | a | d |
| Bernd | Melmak | Niedrig | c | d |
| Klaus | Erde | Niedrig | c | c |
| f | f | f | f | f |
This is just a test for source code formatting with C++. Dropped in some old code from an OpenGL Project done years ago.
This is just a copy of the post done via wp multisite content copier.
/**
* brief get the ID of the programobject assigned by glCreateProgramObjectARB();
*/
unsigned long CgaProgramObject::getID(void)
{
return m_ulID;
}
/******************************************************************************
* File: shader.cpp
* Author: Herbert Mehlhose
* Description: Shader class
*
* Copyright (C) 2007 Herbert Mehlhose. All Rights Reserved.
*
* History:
*
* File created 28.12.2007 H.Mehlhose
* - Add function setUniform() for better shader mgmt 01.01.2007
* - Add vertex attribute location processing in first step 09.01.2008
* - Add new map for storing vertex attribute infos - VAM 01.01.2009
* - Change link function to store vertex attrib locs in new map 03.01.2009
* - Custom Flag now member of vattrib structure 08.01.2009
*
******************************************************************************/
#include <windows.h>
#include <stdio.h>
#include <sys/stat.h> // for the shader file read
#include "glew.h"
#include <GL/gl.h> // gl... functions
#include "scenemgr.h"
#include "glengine.h"
#include "glext.h"
#include "shader.h"
#include "log.h"
#include "vector3.h"
#include "vector4.h"
#include "matrix3.h"
#include "matrix4.h"
/*
extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
// extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB; // HFCM
extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB; // HFCM pass matrix to shader
extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB; // HFCM pass matrix to shader
extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB; // HFCM
extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
*/
/**
* brief CgaProgramObject constructor
*/
CgaProgramObject::CgaProgramObject()
{
m_ulID=0xFFFFFFFF;
strcpy(m_pszProgName,"");
m_bIsLinked=false;
m_idx=0;
}
CgaProgramObject::CgaProgramObject(const char *pszName)
{
//m_ulID=ulID;
strcpy(m_pszProgName,pszName);
m_ulID = glCreateProgramObjectARB();
m_bIsLinked=false;
m_idx=0;
}
/**
* brief Program Object destructor
*/
CgaProgramObject::~CgaProgramObject()
{
INF(SB<<"Deleting Program Object <b>'"<<m_pszProgName<<"'</b>");
glDeleteObjectARB(m_ulID);
VAM.clear();
UM.clear();
}
/**
* brief compile and attach a shader
*/
bool CgaProgramObject::compileAndAttach(unsigned long ulType,const char *pszShaderFilename)
{
char pszFileDir[128] = "shaders\";
char pszFilePath[128];
unsigned char *shaderAssembly;
const char *pszShaderStrings;
GLint bCompileOK; // flag for shader compilation
char pszMsg[4096]; // message string
INF(SB<<"Compile and attach shader <b>'"<<pszShaderFilename<<"'</b> to program <b>'"<<m_pszProgName<<"'</b>");
strcpy(pszFilePath,pszFileDir);
strcat_s(pszFilePath,pszShaderFilename);
shaderAssembly = readShaderFile(pszFilePath);
if(shaderAssembly==NULL)
{
ERR(SB<<"Shader Source File <b>'"<<pszFilePath<<"'</b> skipped from compilation");
return false;
}
SH.push_back(glCreateShaderObjectARB(ulType));
//SH[m_idx]=glCreateShaderObjectARB(ulType);
pszShaderStrings=(char*)shaderAssembly;
glShaderSourceARB(SH[m_idx],1,&pszShaderStrings,NULL);
glCompileShaderARB(SH[m_idx]);
SAFE_DELETE(shaderAssembly);
glGetObjectParameterivARB(SH[m_idx],GL_OBJECT_COMPILE_STATUS_ARB,&bCompileOK );
if(bCompileOK==false)
{
glGetInfoLogARB(SH[m_idx],sizeof(pszMsg),NULL,pszMsg);
ERR(SB<<"Shader Compile Error: <br>"<<pszMsg);
glDeleteObjectARB(SH[m_idx]);
return false;
}
INF(SB<<"Successful compile of Shader: "<<pszShaderFilename<<", handle: "<<(int)SH[m_idx]);
// now attach
glAttachObjectARB(m_ulID,SH[m_idx]);
// check for success???
m_idx++;
return true;
}
/**
* brief attach a shader
*/
bool CgaProgramObject::link(void)
{
GLint bLinkOK; // flag for program linkage
char pszMsg[4096]; // message string
INF(SB<<"Starting link of Shader Program: <b>'"<<m_pszProgName<<"'</b>, handle: "<<m_ulID);
glLinkProgramARB(m_ulID);
// delete the shader objects that are attached after link is done
for(int i=0;i<m_idx;i++) glDeleteObjectARB(SH[i]);
SH.clear();
// check the link status
glGetObjectParameterivARB(m_ulID,GL_OBJECT_LINK_STATUS_ARB,&bLinkOK);
if(bLinkOK==false)
{
glGetInfoLogARB(m_ulID,sizeof(pszMsg),NULL,pszMsg);
ERR(SB<<"Shader Linking Error: "<<pszMsg);
return false;
}
m_bIsLinked=true;
INF(SB<<"Successful link of Shader Program: <b>'"<<m_pszProgName<<"'</b>, handle: "<<m_ulID);
// 03.01.2009 - fill in vertex attribute locations into VAM map - just query
// all attributes
DBG1(SB<<"Vertex Attributes in linked programobject "<<m_pszProgName<<": (loc -1 also for builtins)");
for(itVAM=VAM.begin();itVAM!=VAM.end();itVAM++)
{
(*itVAM).second.nLocation=glGetAttribLocationARB(m_ulID,(*itVAM).second.pszVarName);
DBG1(SB<<"Semantic "<<(*itVAM).first<<": Variable="<<(*itVAM).second.pszVarName<<", Loc="<<(*itVAM).second.nLocation);
}
DBG1(SB<<"Uniforms in linked programobject "<<m_pszProgName<<":");
for(itUM=UM.begin();itUM!=UM.end();itUM++)
{
(*itUM).second.nLocation=glGetUniformLocationARB(m_ulID,(*itUM).second.pszVarName);
DBG1(SB<<"Semantic "<<(*itUM).first<<": Variable="<<(*itUM).second.pszVarName<<", Loc="<<(*itUM).second.nLocation);
}
itVAM_Work=VAM.begin(); // setup for getNext...
itUM_Work=UM.begin();
return true;
}
Yes, thats what it is, just a test.
This is a post just to test for correct permalink
Welcome to Herb’s testblog Sites. This is your first post. Edit or delete it, then start writing!
Powered by WordPress & Theme by Anders Norén