Изучение OpenGL в [закрытой] Ubuntu

Я основывался на ответе Вика, чтобы позволить мне иметь разные страницы «Отказано в доступе» для каждой области приложения. Сделали это, вернув вместо этого RedirectToRouteResult, который вместо перенаправления на URL-адрес относительно корня приложения перенаправляет на контроллер текущей области и действие:

public class AccessDeniedAuthorizeAttribute : AuthorizeAttribute
{
    public string AccessDeniedController { get; set; }
    public string AccessDeniedAction { get; set; }

    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        base.OnAuthorization(filterContext);

        if (filterContext.HttpContext.User.Identity.IsAuthenticated &&
            filterContext.Result is HttpUnauthorizedResult)
        {
            if (String.IsNullOrWhiteSpace(AccessDeniedController) || String.IsNullOrWhiteSpace(AccessDeniedAction))
            {
                AccessDeniedController = "Home";
                AccessDeniedAction = "AccessDenied";
            }

            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { Controller = AccessDeniedController, Action = AccessDeniedAction }));
        }
    }
}
44
задан Peter Mortensen 22 January 2010 в 22:42
поделиться

2 ответа

[

]Первое, что нужно сделать, это установить библиотеки OpenGL. Я рекомендую:[

] [
freeglut3
freeglut3-dev
libglew1.5
libglew1.5-dev
libglu1-mesa
libglu1-mesa-dev
libgl1-mesa-glx
libgl1-mesa-dev
] [

]После их установки, при компиляции:[

] [
g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example
] [

]В example.cpp включить библиотеки OpenGL так:[

] [
#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
] [

]Затем, чтобы включить более продвинутые опции opengl вроде шейдеров, поместите это после вашего glutCreateWindow Call:[

] [
GLenum err = glewInit();
if (GLEW_OK != err)
{
    fprintf(stderr, "Error %s\n", glewGetErrorString(err));
    exit(1);
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));

if (GLEW_ARB_vertex_program)
    fprintf(stdout, "Status: ARB vertex programs available.\n");

if (glewGetExtension("GL_ARB_fragment_program"))
    fprintf(stdout, "Status: ARB fragment programs available.\n");

if (glewIsSupported("GL_VERSION_1_4  GL_ARB_point_sprite"))
    fprintf(stdout, "Status: ARB point sprites available.\n");
] [

]Это должно включить всю функциональность OpenGL, а если нет, то это должно подсказать вам о проблемах.[

]
67
ответ дан 26 November 2019 в 22:06
поделиться

Возможно, вы захотите использовать Qt для рисования окон и виджетов.

Здесь учебник, основанный на руководствах Nehe, чтобы показать вам, как создавать изображения OpenGL с помощью Qt.

Чтобы изучить OpenGL, необходимо прочитать Красную книгу OpenGL . Есть онлайн-версия. Там очень хорошие объяснения и примеры.

1
ответ дан 26 November 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: