Example #1
0
static void printConnectors(int fd, uint32_t* ids, uint32_t count) {
	drmModeConnector *conn;
	int i;

	for (i = 0; i < count; i++) {
		conn = drmModeGetConnector(fd, ids[i]);
		if (!conn) {
			fprintf(stdout, "      Connector %u: cannot retrieve (%d): %m\n\n", ids[i], errno);
			continue;
		}

		fprintf(stdout, "      Connector %u:\n", conn->connector_id);
		fprintf(stdout, "        Type: %s\n", getConnectorType(conn->connector_type));
		fprintf(stdout, "        Dimensions: %umm x %umm\n", conn->mmWidth, conn->mmHeight);
		fprintf(stdout, "        SubPixel: %s\n", getConnectorSubPixel(conn->subpixel));
		fprintf(stdout, "        Connection: %s\n", getConnectorConnection(conn->connection));
		fprintf(stdout, "        Encoders: %d: %s\n", conn->count_encoders, getList32(conn->encoders, conn->count_encoders));
		fprintf(stdout, "        Properties: %d:\n", conn->count_props);
		printProperties(fd, conn->props, conn->prop_values, conn->count_props);
		fprintf(stdout, "        Modes: %d:\n", conn->count_modes);
		printModes(conn->modes, conn->count_modes);

		fprintf(stdout, "\n");

		drmModeFreeConnector(conn);
	}
}
Example #2
0
int as::Window::init() {
    // First figure out what kind of mode we're in.
    switch ( m_videoMode ) {
        // Use provided width and height.
        case -1: {
            m_mode = sf::VideoMode( m_width, m_height );
            break;
        }
        // Use desktop width and height.
        case 0: {
            m_mode = sf::VideoMode::getDesktopMode();
            break;
        }
        // Use provided video mode.
        default: {
            int modeIndex = m_videoMode--;
            std::vector<sf::VideoMode> modes = sf::VideoMode::getFullscreenModes();
            if ( modeIndex < (int)modes.size() && modeIndex >= 0 ) {
                m_mode = modes.at( modeIndex );
            } else {
                as::printf( "ERR Video mode index % is out of range, using last available video mode...\n", m_videoMode );
                m_mode = modes.back();
            }
            break;
        }
    }
    printModes();
    if ( m_fullscreen && !m_mode.isValid() ) {
        as::printf( "WRN %x% is an invalid video mode!\n", m_width, m_height );
        as::printf( "INF Using desktop resolution instead.\n" );
        m_mode = sf::VideoMode::getDesktopMode();
    }
    if ( m_noborder ) {
        m_window->create( m_mode, m_name, sf::Style::None );
    } else if ( m_fullscreen ) {
        m_window->create( m_mode, m_name, sf::Style::Fullscreen );
    } else {
        m_window->create( m_mode, m_name );
    }
    m_window->setFramerateLimit( m_maxfps );
    m_window->setVerticalSyncEnabled( m_vsync );
    return 0;
}