Initializing an EGL display
Certainly found the alternative (2nd version) immediately understandable.  Not so with the first (both simplified below).  The 2nd maps directly to the stated requirement "exits early and returns false if any call fails".  This alone gives it a strong preference. 

int success = 1;
....
success = success &amp;&amp; func1();
success = success &amp;&amp; func2();
success = success &amp;&amp; func3();
....


versus

if (!func1()) {
  return 0;
}
if (!func2()) {
  return 0;
}
if (!func3()) {
  return 0;
}
....


Minor: Why isn't the first success = success &amp;&amp; func1(); vs. int success = func1();.  Just to maintain symmetry?

Why use int instead of bool?  Portability?  If C99 or later available as the minimum standard, better to use bool.



The success approach may have merit in select circumstances yet do not see that called for here.  I would opt for the if () style as it matches the scant coding requirements.