Exemple #1
0
int main(int argc, char** argv) {
    printf("hello world\n");

    time_init();

    // set up the window
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(window_wd, window_ht);
    window = glutCreateWindow("atomos_gpu");
    glutDisplayFunc(tick);
    glutReshapeFunc(reshapeHandler);
    glutKeyboardFunc(keyHandler);
    // glutMouseFunc(mouseHandler);

    assert (maxVolumes > simulation_ht * simulation_ht);
    initPositionMap();
    initConnectionMap();
    initFrameBuffers();


    shader_tick.init(   "shaders/vert.glsl", "shaders/tick.glsl"   );
    shader_display.init("shaders/vert.glsl", "shaders/display.glsl");
    checkGLError();


    doTiming("window setup");
    printf("\n");

    glutMainLoop();

    return 0;
}
Exemple #2
0
void SurfaceWindow::createSwapchain() {
    VkSwapchainCreateInfoKHR info = {};

    uint32_t nFormat;
    vkGetPhysicalDeviceSurfaceFormatsKHR(mDevice, mSurface, &nFormat, nullptr);
    std::vector<VkSurfaceFormatKHR> formats(nFormat);
    vkGetPhysicalDeviceSurfaceFormatsKHR(mDevice, mSurface, &nFormat, &formats[0]);

    if(nFormat == 1 && formats[0].format == VK_FORMAT_UNDEFINED)
        formats[0].format = VK_FORMAT_B8G8R8A8_SRGB;

    mFormat = formats[0].format;
    SimpleRenderPassBuilder renderPassBuilder;
    mRenderPass = renderPassBuilder.build(mDevice, mFormat);

    info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
    info.pNext = nullptr;
    info.flags = 0;
    info.imageFormat = formats[0].format;
    info.imageColorSpace = formats[0].colorSpace;
    info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
    info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;
    info.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
    info.compositeAlpha = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR;
    info.presentMode = VK_PRESENT_MODE_MAILBOX_KHR;
    info.surface = mSurface;
    info.minImageCount = 2; // Double buffering...
    info.imageExtent.width = mWidth;
    info.imageExtent.height = mHeight;

    vulkanCheckError(vkCreateSwapchainKHR(mDevice, &info, nullptr, &mSwapchain));
    initFrameBuffers();
}
void MainWidget::initializeGL()
{
    initializeOpenGLFunctions();

    connect(this, SIGNAL(frameSwapped()), this, SLOT(update()));

    glClearColor(1.0f, 0.0f, 0.0f, 1.0f);

    // Enable depth buffer
    //glEnable(GL_DEPTH_TEST);

    // Enable back face culling
    //glEnable(GL_CULL_FACE);

    initShaders();
    initTextures();
    initFrameBuffers();

}